pc端移动端兼容的大图轮播
body, html {
width: 100%;
}
* {
margin:;
padding:;
list-style: none;
}
.haha {
list-style-type: none;
}
.nav {
width: 100%;
height: 300px;
overflow: hidden;
position: relative;
}
.warp {
height: 300px;
position: absolute;
}
.warp .haha {
height: 300px;
float: left;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.warp img {
width: 100%;
height: auto;
}
.nouse {
width: 100%;
position: absolute;
bottom:;
left:;
}
.point {
width: 140px;
margin: 0 auto;
}
.point > div {
width: 20px;
height: 20px;
border-radius: 50%;
background-color: white;
margin-left: 30px;
float: left;
}
.point > div:first-child {
margin-left:;
}
.nav .point .on {
background-color: red;
width: 40px;
height: 20px;
border-radius: 10px;
}
<div class="nav">
<div class="warp">
<div class="haha"><img src=""></div>
<div class="haha"><img src=""></div>
<div class="haha"><img src=""></div>
</div>
<div class="nouse">
<div class="point">
<div class="on"></div>
<div></div>
<div></div>
</div>
</div>
<script type="text/javascript">
var p = 0;
var len = $('.haha').length;
var warp = $('.warp');
var timer = null;
var firstimg = $('.warp .haha').first().clone();
$('.warp').append(firstimg).width($('.warp .haha').length * 100 + '%');
$('.warp .haha').width(100 / $('.warp .haha').length + '%');
var isMoved;
//自动切换
function change() {
p++;
if (p == $('.warp .haha').length) {
p = 1;
$('.warp').css('left', '0px');
}
;
warp.stop().animate({left: -p * 100 + '%'}, 1000, function () {
console.log(p);
if (p == $('.warp .haha').length - 1) {
$('.point div').eq(p - $('.warp .haha').length + 1).addClass("on").siblings("div").removeClass("on");
} else {
$('.point div').eq(p).addClass("on").siblings("div").removeClass("on");
}
});
}
// timer = setInterval(change, 2300);
$(".point div").click(function () {
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p = $(this).index();
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
}) ;
})
var pageX,pageY;
$('.warp').on('touchstart',function (e) {
var touches = e.originalEvent.targetTouches[0];
pageX = touches.pageX;
pageY = touches.pageY;
}).on('touchmove',function (e) {
var touches = e.originalEvent.targetTouches[0];
if(touches.pageX>pageX-20 && Math.abs(touches.pageY-pageY)<Math.abs(touches.pageX-pageX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p--;
if (p<0){
warp.css({left: -(len)*100+"%"});
p=len-1;
$(".point div").removeClass('on').eq(p).addClass('on')
} else {
$(".point div").removeClass('on').eq(p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
else if(touches.pageX<pageX+20 && Math.abs(touches.pageY-pageY)<Math.abs(touches.pageX-pageX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p++;
if (p>len){
warp.css({left: 0+"%"});
p=1;
$(".point div").removeClass('on').eq(p).addClass('on')
}else {
console.log(p>=len?0:p)
$(".point div").removeClass('on').eq(p>=len?0:p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
})
var x,y;
$(document).mousedown(function(event){ //获取鼠标按下的位置
x = event.pageX;
y = event.pageY;
});
$(document).mouseup(function(event){//鼠标释放
var newX = event.pageX;
var newY = event.pageY;
if(x<newX-20 && Math.abs(y-newY)<Math.abs(x-newX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p--;
if (p<0){
warp.css({left: -(len)*100+"%"});
p=len-1;
$(".point div").removeClass('on').eq(p).addClass('on')
} else {
$(".point div").removeClass('on').eq(p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
else if(x>newX+20 && Math.abs(y-newY)<Math.abs(x-newX)){
if (isMoved){
return '';
}
isMoved=true
clearInterval(timer);
$(this).addClass("on").siblings("div").removeClass("on");
p++;
if (p>len){
warp.css({left: 0+"%"});
p=1;
$(".point div").removeClass('on').eq(p).addClass('on')
}else {
$(".point div").removeClass('on').eq(p>=len?0:p).addClass('on')
}
console.log(p)
warp.stop().animate({left: -p * 100 + '%'}, 1000,function () {
// timer = setInterval(change, 2300);
isMoved=false;
}) ;
}
})
$('img').on('mousedown',function (e) {
e.preventDefault()
})
最后别忘记引入jq奥
pc端移动端兼容的大图轮播的更多相关文章
- CSS3常用属性(边框、背景、文本效果、2D转换、3D转换、过渡、有过渡效果大图轮播、动画)
CSS3边框: 1.CSS3圆角:border-radius 属性--创建边框线的圆角 <body style="font-size:24px; color:#60F;"& ...
- [DBW]大图轮播,可通过两种方法实现
通过在div中加入表格,实现大图轮播,代码如下: 整体的思路: 1.在div中嵌入表格,设置div的宽和高,设置成图片大小,确定其位置,将图片插入表格,超出div部分隐藏 2.在js中定义一个变量接受 ...
- 利用JS做网页特效——大图轮播
大图轮播完整流程代码操作: <style> * { margin: 0px; padding: 0px; ...
- bootstrap大图轮播手机端不能手指滑动解决办法
网上看了很多解决办法,几乎本质都是一样的,都是引入一个滑动的js插件,加入一段js代码,即可生效,但是我试了hammer.js 和 touchSwipe.js 都不生效,也找不到原因是什么,目前在网上 ...
- 关于移动端使用swiper做图片文字轮播的思考
最近做移动端网页的时候,需要在首页添加一个公告的模块,用来轮播公告消息标题并且能链接到相应的详情页面,最开始用的是swiper插件,在安卓上测试完全没有问题,但是在苹果机上就没有那么灵敏了,来回切换首 ...
- JQUERY写大图轮播;附jquery的hover()方法、animate()方法、find()方法
思想:黑框设置超出部分隐藏. 红框往左移动,通过判断红框左边框距离黑框左边框的像素值,来实现红框的移动. 绿框在最上层,放每张图片的说明和序号. 一:html部分(大框.图片部分.箭头部分.图片介绍部 ...
- 纯原生JS大图轮播
CSS部分: CSS: <style type="text/css"> #banner { position: relative; width: 500px; heig ...
- jQuery实现大图轮播
css样式: *{ margin: 0; padding: 0;}ul{ list-style:none;}.slideShow{ width: 620px; heigh ...
- 拖拽大图轮播pc 移动兼容
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 20170406-ms
Interval 间隔 revoke v撤销 alert adj 警觉的 n警报
- linux 读取部分文件内容
一般我们在linux上读取文件,是用vi工具,如果是写shell 脚本时,一般式通过cat 再 使用管道来达到流的处理. 但如果文件太大,单纯的cat 可能会使用过多的内存,而且实现上还需要后续的加工 ...
- A. Banana (2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛)
题目大意是有一堆猴子,然后每个猴子都有自己喜欢的香蕉类型,然后香蕉会在指定的位置,问每个猴子能不能在每个地方吃到自己喜欢的香蕉. 其实直接暴力即可(因为最大最大最大是50) 上代码: #include ...
- 【模板】RMQ问题的ST表实现
$RMQ$问题:给定一个长度为$N$的区间,$M$个询问,每次询问$[L_i,R_i]$这段区间元素的最大值/最小值. $RMQ$的高级写法一般有两种,即为线段树和$ST$表. 本文主要讲解一下$ST ...
- JavaScript--数组常用方法总结
JavaScript--数组常用方法总结 测试模板: var arr = ["a", "b", "c", "d", &q ...
- Varnish快速安装及测试
实验环境: slave-147: 192.168.75.147 slave-148: 192.168.75.148 两台机器均已关闭selinux,关闭iptables. varnish部署 ...
- JAVA 运用流编程实现简单的"记事本"功能
一.概要 1.功能介绍 2.实现的思路及步骤代码 3.完整代码 二.功能 运用IO流和Swing实现简单的记事本功能(打开.保存.退出) 三.思路及实现步骤 1.在构造函数中画出操作界面 //创建jt ...
- 如何使用 Java 生成二维码
步骤 下载jar包(QRCode.jar) maven项目手动引入jar包 编写实体类实现二维码的生成 controller调用 下载jar包(QRCode.jar) 下载网址如下: QRCode生成 ...
- 【转】Java中创建对象的5种方式
Java中创建对象的5种方式 作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有 ...
- joomla多语言建站之默认前台语言设置
joomla多语言建站后,如果想设置其中一种语言为默认前台语言,即: 从后台点击“Site Name”跳转时: 访问域名时: 页面自动切换至某一种语言,可以在后台通过“语言管理”模块来实现,将“网站前 ...