同一个页面多个page之间的切换

本文介绍JQMobile框架的基础知识,包括其四大组成部分及如何创建和切换页面。通过实例展示了多页面布局的实现方法及其过渡动画效果。

今天接触了JQ Mobile以下是本小白的理解(不怕大家笑话):

创建移动 web 应用程序的框架;适用于所有流行的智能手机和平板电脑; 将“写得更少、做得更多”这一理念提升到了新的层次:它会自动为网页设计交互的易用外观,并在所有移动设计上保持一致。

从官网上可以看出jQuery mobile内容分为四大部分:

jQM的内容分为四大部分:

(1)Page & Navigation

(2)CSS Framework

(3)Widgets(小部件)

(4)Form Widgets

 

以下用到的文件都可在官网下载到:

CSS文件:jquery.mobile.css

jQuery文件:jquery.js

jQuery Mobile文件:jquery.mobile.js

 

这次主要接触的是页面和页面切换效果

jQM中的“Page(页面)” jqm中的Page指WebApp中的“一屏内容”——一个HTML文件中可以只声明一个Page(单页模板),也可以声明多个Page(多页模板)——浏览器中某个时刻最多只能显示一个Page!

一个Page的基本结构:

<div/section data-role="page">

<div/header data-role="header"></div/header>

<div/section class="ui-content"></div/section>

<div/footer data-role="footer"></div/footer>

</div>

在多个Page间跳转有两种方式:

(1)超链接:  

<a href="#PageID/xx.html"></a>

(2)JS编码:

<button onclick="$.mobile.changePage('#PageID/xx.html');"></button>

 

 

jQM中常用的data-*属性:

data-role="page"  

data-role="header"

data-role="content"

data-role="footer"

data-theme="a/b"  用于任何元素,设置当前元素的主题色

data-position="fixed"  用于footer,实现固定在Page的底部

data-title=""  用于Page,指定当前浏览器的标题栏内容

data-rel="back"  用于超链接,可以返回到当前Page的上一个Page

data-transition="十种可能值"  用于页面跳转的超链接,指定页面切换过场动画

data-role="button"  用于超链接,使其呈现块级按钮的外观

data-inline="true"  用于按钮,声明为行内按钮,本质就是添加.ui-btn-inline

data-icon="50种图标"  可用于为按钮指定图标

data-iconpos="left/right/top/bottom/notext"

 

 以下是今天做的案例分享分享:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="stylesheet" href="jqm/jquery.mobile-1.4.5.css"/>
<script src="js/jquery-1.11.3.js"></script>
<script src="jqm/jquery.mobile-1.4.5.js"></script>
</head>
<body>

<div data-role="page" id="p21">
<div data-role="header">
<h1>头部-p21</h1>
</div>
<div class="ui-content">
<h1>一个HTML页面包含多个page</h1>
<h2>p21-第一个page</h2>
<a href="#p22">跳转到第二个page</a>
<button onclick="$.mobile.changePage('#p23')">跳到第三个页面-p23</button>
</div>
<div data-role="footer">
<h1>尾部</h1>
</div>
</div>

<div data-role="page" id="p22">
<div data-role="header">
<h1>头部-p22</h1>
</div>
<div class="ui-content">

<h2>p22-第二个page</h2>
<a href="#p23">跳转到第三个page</a>
</div>
<div data-role="footer">
<h1>尾部</h1>
</div>
</div>

<div data-role="page" id="p23">
<div data-role="header">
<h1>头部-p23</h1>
</div>
<div class="ui-content">

<h2>p23-第三个page</h2>
<a href="#" data-rel="back">返回上一个页面</a>
</div>
<div data-role="footer">
<h1>尾部</h1>
</div>
</div>
</body>
</html>

转载于:https://www.cnblogs.com/wl0357/p/5313044.html

在MFC中实现单窗口内的多页面切换功能,通常可以通过使用`CPropertySheet`和`CPropertyPage`类来完成。这种方式适用于需要在一个窗口中展示多个逻辑上独立的页面的场景,例如设置向导或选项卡式界面。以下是实现该功能的详细步骤和说明: ### 1. 创建MFC对话框工程 首先,创建一个基于对话框的MFC应用程序。打开Visual Studio,选择“MFC应用程序”,然后选择“基于对话框”的应用程序类型。工程名称可以设置为`PageSwitch`。 ### 2. 添加多个页面 接下来,在资源视图中添加两个对话框资源,分别命名为`IDD_PAGE1`和`IDD_PAGE2`。这两个对话框将作为两个子页面。 为每个对话框创建一个对应的类: - 为`IDD_PAGE1`创建类`CPage1`,基类选择`CPropertyPage`。 - 为`IDD_PAGE2`创建类`CPage2`,基类同样选择`CPropertyPage`。 ### 3. 创建属性表类 为了管理多个页面,需要创建一个继承自`CPropertySheet`的类。添加一个新类`CSheetBase`,其基类为`CPropertySheet`。 在`CSheetBase`类中声明两个成员变量,用于表示两个页面: ```cpp CPage1 m_page1; CPage2 m_page2; ``` ### 4. 构造函数中添加页面 在`CSheetBase`的构造函数中,使用`AddPage`方法将两个页面添加到属性表中。构造函数的实现如下: ```cpp CSheetBase::CSheetBase(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) : CPropertySheet(nIDCaption, pParentWnd, iSelectPage) { AddPage(&m_page1); AddPage(&m_page2); } CSheetBase::CSheetBase(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) : CPropertySheet(pszCaption, pParentWnd, iSelectPage) { AddPage(&m_page1); AddPage(&m_page2); } ``` ### 5. 修改应用程序初始化代码 在`PageSwitch.cpp`中包含`SheetBase.h`头文件,并修改`CPageSwitchApp::InitInstance()`函数,将原来的对话框对象替换为自定义的属性表对象: ```cpp #include "SheetBase.h" // ... CPageSwitchDlg dlg; // 原来的代码:CPageSwitchDlg dlg; CSheetBase dlg("SaleSystem"); m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); ``` ### 6. 编译并运行 完成上述步骤后,编译并运行项目。此时,应用程序将显示一个包含两个页面的窗口,用户可以通过选项卡在页面之间切换。 ### 7. 自定义页面布局 如果希望隐藏默认的选项卡(即不显示选项卡控件),可以在`CSheetBase`的构造函数中调用`SetWizardMode()`或使用`SetActivePage()`方法来控制页面切换。此外,可以通过重写`OnInitDialog()`方法来自定义页面的布局和行为。 ### 8. 动态切换页面 如果希望在运行时通过按钮或其他控件动态切换页面,可以在主对话框中添加一个`CPropertySheet`成员变量,并在需要时调用`SetActivePage()`方法来切换当前显示的页面[^1]。 例如,在主对话框类中添加以下代码: ```cpp CSheetBase m_sheet; ``` 在`OnInitDialog()`中初始化并显示第一个页面: ```cpp m_sheet.Create(this, WS_CHILD | WS_VISIBLE, 0); m_sheet.SetActivePage(&m_sheet.m_page1); ``` 通过按钮点击事件切换页面: ```cpp void CPageSwitchDlg::OnBnClickedButton1() { m_sheet.SetActivePage(&m_sheet.m_page2); } ``` ### 9. 布局调整 确保`CPropertySheet`的父窗口(通常是主对话框)具有`WS_CHILD`风格,并且大小合适,以便容纳页面内容。可以通过调整对话框资源的尺寸或在代码中设置窗口位置来优化布局。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值