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端移动端兼容的大图轮播的更多相关文章

  1. CSS3常用属性(边框、背景、文本效果、2D转换、3D转换、过渡、有过渡效果大图轮播、动画)

    CSS3边框: 1.CSS3圆角:border-radius  属性--创建边框线的圆角 <body style="font-size:24px; color:#60F;"& ...

  2. [DBW]大图轮播,可通过两种方法实现

    通过在div中加入表格,实现大图轮播,代码如下: 整体的思路: 1.在div中嵌入表格,设置div的宽和高,设置成图片大小,确定其位置,将图片插入表格,超出div部分隐藏 2.在js中定义一个变量接受 ...

  3. 利用JS做网页特效——大图轮播

    大图轮播完整流程代码操作: <style>            * {                margin: 0px;                padding: 0px;  ...

  4. bootstrap大图轮播手机端不能手指滑动解决办法

    网上看了很多解决办法,几乎本质都是一样的,都是引入一个滑动的js插件,加入一段js代码,即可生效,但是我试了hammer.js 和 touchSwipe.js 都不生效,也找不到原因是什么,目前在网上 ...

  5. 关于移动端使用swiper做图片文字轮播的思考

    最近做移动端网页的时候,需要在首页添加一个公告的模块,用来轮播公告消息标题并且能链接到相应的详情页面,最开始用的是swiper插件,在安卓上测试完全没有问题,但是在苹果机上就没有那么灵敏了,来回切换首 ...

  6. JQUERY写大图轮播;附jquery的hover()方法、animate()方法、find()方法

    思想:黑框设置超出部分隐藏. 红框往左移动,通过判断红框左边框距离黑框左边框的像素值,来实现红框的移动. 绿框在最上层,放每张图片的说明和序号. 一:html部分(大框.图片部分.箭头部分.图片介绍部 ...

  7. 纯原生JS大图轮播

    CSS部分: CSS: <style type="text/css"> #banner { position: relative; width: 500px; heig ...

  8. jQuery实现大图轮播

    css样式: *{    margin: 0;    padding: 0;}ul{    list-style:none;}.slideShow{    width: 620px;    heigh ...

  9. 拖拽大图轮播pc 移动兼容

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. Codeforces - 1118D2 - Coffee and Coursework (Hard Version) - 二分

    https://codeforces.com/problemset/problem/1118/D2 也是很好想的一个二分啦. 验证m的可行性的时候,肯定是把最多咖啡因的咖啡先尽可能平均分到每一天,因为 ...

  2. bzoj 3576: [Hnoi2014]江南乐【博弈论】

    这个东西卡常--预处理的时候要先把i%j,i/j都用变量表示,还要把%2变成&1-- 首先每一堆都是不相关子游戏,所以对于每一堆求sg即可 考虑暴力枚举石子数i,分割块数j,分解成子问题求xo ...

  3. 第一篇 .NET高级技术之索引器

    基础知识补充 索引 器 没有名字 ,索引器的内部本质 (ILSpy的IL模式下看)类型 this[参数]{get;set;} 可以是只读或者只写(在get或者set前加上private) 字符串是只读 ...

  4. Python基础知识(1)

    Python 3 1:print:输出信息    例子:   ( 所有的标点符号都要是英文状态下输入,要不然会报错) print(“hello world”) 2:注意 : python 和 pyth ...

  5. sh 脚本报错

    sh 脚本报错 思路如下: 1.建议按照手工方式运行该脚本. 2.加入-x 方式查看脚本的输出.

  6. python正则表达式提取中文

    import urllib.requestimport reurl='https://songsearch.kugou.com/song_search_v2?callback=jQuery112407 ...

  7. UESTC - 878 温泉旅店 二维费用背包问题

    http://acm.uestc.edu.cn/#/problem/show/878 设dp[i][j][k]表示在前i个数中,第一个得到的异或值是j,第二个人得到的异或值是k的方案数有多少种. 因为 ...

  8. Saltstack学习笔记--安装

    实验环境: 两台RHEL 7.2 192.168.75.135          master .minion 192.168.75.136          minion 确保机器的防火墙及seli ...

  9. AJPFX分享eclipse自动生成java注释方法

    设置方法介绍:eclipse中:Windows->Preferences->Java->Code Style->Code Template->Comments,然后对应的 ...

  10. Android Activity生命周期的几个问题

      每一个Android开发者都应该知道,android系统有四个重要的基本组件,即Activity(活动).Service(服务).Broadcast Receive(广播接收器)和Content ...