jquery mobile移动端幻灯片滑动切换效果

发布时间 - 2026-01-10 22:31:46    点击率:

自动适应设备的宽度,滑动会切换大图,底部导航跟随切换。点击底部导航切换大图。使用的jquery_mobile插件,引入1.4.5的插件,CSS表和jquery库即可,除了ID,CLASS命名可能会和你项目重复,改成单独即可,其他应该没有重复的,因为本脚本使用计时器写的,加入了方法判定,在执行一个方法的时候,锁定其他方法禁止执行,不会冲突,使用计时器来控制动画,可能不尽如人意,准备重构一下改成Jquery的animate()方法来执行动画效果。近期重构好在上传使用内置方法不用计时器的版本吧。

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="jsmobile/jquery.mobile-1.4.5.min.css">
<script src="js/jquery183.min.js"></script>
<script src="jsmobile/jquery.mobile-1.4.5.min.js"></script>
<style>
ul,li,a,body,div{
margin:0px;
list-style:none;
}
#nav li{
width:18%;
border:1px solid blue;
height:50px;
line-height:50px;
list-style:none;
text-align:center;
float:left;
}
.top_jt{
width:100px;
height:50px;
border:1px solid green;
text-align:center;
line-height:50px;
position: fixed;
top:800px;
left:230px;
z-index:1000;
box-shadow: 1px 1px 10px #666;
}
.dingyi{
position: fixed;
top:0px;
z-index:1000;
box-shadow: 1px 1px 10px #666;
}
.p_ul_li{float:left;width:20%;height:20px;border:1px solid black;text-align:center;margin:2%;}
.p_ul{width:100%;padding:0px;}
.back{background-color:red;color:white;}
</style>
</head>
<body>
<div data-role="page" id="pageone" >
<!--引用页头-->
<iframe src="header.html" width="100%" height="50" frameborder="0"> 
</iframe>

<div data-role="content">


<div class="container" id="container" style="width:100%;overflow:hidden;">
<div class="content" id="content" style="overflow:hidden;">

<div class="service_scope" style="height:300px;background-color:red;float:left;">
AAAAAAAAA 
</div>
<div class="service_scope" style="height:300px;background-color:blue;float:left;">
BBBBBBBBB 
</div>
<div class="service_scope" style="height:300px;background-color:green;float:left;">
CCCCCCCCC 
</div>
<div class="service_scope" style="height:300px;background-color:black;float:left;">
DDDDDDDDD 
</div>
</div>
<ul id="p_ul" class="p_ul ">
<li class="p_ul_li back">A</li>
<li class="p_ul_li">B</li>
<li class="p_ul_li">C</li>
<li class="p_ul_li">D</li>
</ul>
</div>


<script type="text/javascript">
//获取当前设备宽度
var body_width = document.body.clientWidth;//当前设备宽度
var arr = document.getElementsByClassName("service_scope");//幻灯片数组
document.getElementById("content").style.width = body_width * arr.length;//幻灯片的父容器的宽度
var i;//全局计数器
var zhuangtai = false;//状态判定,动画效果执行的时候不能在叠加效果执行,执行完毕才能在执行新的函数
var p_ul_li=0;//底部选择器样式的计数器
var t = 380;//动画效果执行时间,0.38S
var jishi = 1;//计时器每次执行时间
for(i = 0;i < arr.length; i++){
arr[i].style.width = body_width;//第一种子元素的宽度,用JS动态取值赋值
}
$(function(){
$(".service_scope").swipeleft(function(){
//console.log(p_ul_li);
if($(this).index() >= 0 && $(this).index() < arr.length-1 && zhuangtai == false){
$left_yidong = setInterval("left_yidong()",jishi);
//$(".p_ul_li").eq(p_ul_li).next().addClass("back").siblings().removeClass("back");
$(".p_ul_li").eq(p_ul_li).removeClass("back").css({"background-color":"white","color":"black"}).next().css({"background-color":$(this).next().css("background-color"),"color":"white"});
p_ul_li++;
}

if(p_ul_li > arr.length-1){
p_ul_li = arr.length-1;
}
});
$(".service_scope").swiperight(function(){
//console.log(p_ul_li);
if($(this).index() > 0 && $(this).index() <= arr.length-1 && zhuangtai == false){
//$(".p_ul_li").eq(p_ul_li).prev().addClass("back").siblings().removeClass("back");
$(".p_ul_li").eq(p_ul_li).css({"background-color":"white","color":"black"}).prev().css({"background-color":$(this).prev().css("background-color"),"color":"white"});
$right_yidong = setInterval("right_yidong()",jishi);
p_ul_li--;
}

if(p_ul_li < 0){
p_ul_li = 0;
}
});
$(".p_ul_li").click(function(){
if(zhuangtai == false){
//$(this).addClass("back").siblings().removeClass("back");
$(this).css({"background-color":$(".service_scope").eq($(this).index()).css("background-color"),"color":"white"}).siblings().removeClass("back").css({"background-color":"white","color":"black"});
p_ul_li = $(this).index();
switch ($(this).index()){ //此处可以设定更多的值,只需要大于要显示的元素个数即可。条件就是Int,left就是宽度*对应的Int
case 0 : $("#content").offset({left:0});
break; 
case 1 : $("#content").offset({left:-body_width});
break; 
case 2 : $("#content").offset({left:-body_width*2}); 
break; 
case 3 : $("#content").offset({left:-body_width*3}); 
break; 
} 
}
});
});
function left_yidong(){
zhuangtai = true;
$left = $("#content").position().left;
$("#content").offset({left:$left-body_width/t});
i++;
if(i >= t){
clearInterval($left_yidong);
zhuangtai = false;
i=0;
}
}
function right_yidong(){
zhuangtai = true;
$left = $("#content").position().left;
$("#content").offset({left:$left+body_width/t});
i++;
if(i >= t){
clearInterval($right_yidong);
zhuangtai = false;
i=0;
}
}
</script>
</div>

<!--引用页尾-->
<iframe src="footer.html" width="100%" height="50" frameborder="0"> 
</iframe>
</div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# jquery  # mobile移动端幻灯片  # mobile移动端幻灯片切换  # jquery_mobile幻灯片切换效果  # jQuery实现简单的滑动导航代码(移动端)  # jQuery操作dom实现弹出页面遮罩层(web端和移动端阻止遮罩层的滑动)  # 移动端jQuery修正Web页面滑动时div问题的两则实例  # Jquery左右滑动插件之实现超级炫酷动画效果附源码下载  # jquery左右全屏大尺寸多图滑动效果代码分享  # jquery实现移动端按钮组左右滑动  # 计时器  # 执行时间  # 能在  # 重构  # 和你  # 只需要  # 方法来  # 大家多多  # 近期  # 上传  # 选择器  # 页尾  # 因为本  # list  # div  # px  # margin  # body  # li  # css 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 实现点击下箭头变上箭头来回切换的两种方法【推荐】  Laravel如何使用Blade模板引擎?(完整语法和示例)  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  昵图网官网入口 昵图网素材平台官方入口  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel如何实现API速率限制?(Rate Limiting教程)  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  原生JS获取元素集合的子元素宽度实例  微信小程序 scroll-view组件实现列表页实例代码  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel如何实现数据库事务?(DB Facade示例)  Python制作简易注册登录系统  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  网站制作免费,什么网站能看正片电影?  jQuery中的100个技巧汇总  香港服务器租用每月最低只需15元?  微信小程序 五星评分(包括半颗星评分)实例代码  网站制作价目表怎么做,珍爱网婚介费用多少?  如何在万网自助建站平台快速创建网站?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  企业网站制作这些问题要关注  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  如何用PHP快速搭建CMS系统?  Laravel如何实现API版本控制_Laravel版本化API设计方案  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  大同网页,大同瑞慈医院官网?  linux写shell需要注意的问题(必看)  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  如何在建站之星绑定自定义域名?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  如何快速选择适合个人网站的云服务器配置?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  如何在建站之星网店版论坛获取技术支持?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  北京网站制作公司哪家好一点,北京租房网站有哪些?  如何在Windows虚拟主机上快速搭建网站?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  音响网站制作视频教程,隆霸音响官方网站?  Laravel如何记录自定义日志?(Log频道配置)  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  如何在 React 中条件性地遍历数组并渲染元素  如何撰写建站申请书?关键要点有哪些?  php json中文编码为null的解决办法