维多利亚的秘密微信推广广告模仿-图片上下滑动

这个轻应用特别火,所以模仿了一下,详情可以了解http://it.21cn.com/itroll/a/2014/0703/06/27723403_1.shtml

里面分为两部分:一部分是图片上下滑动;一部分是类似刮刮卡的效果;我将分两节讲解,现在先讲解第一部分。

原理:

其实里面就是很多张照片,只有一张显示,当手触摸时将上一张和下一张照片移动到上下两侧,当手指滚动时上下两张照片跟着滚动,当前的照片进行缩小;但手指松开时,判断滚动的距离是否超过阀值,如果超过就将上一张或者下一张滚动到屏幕中间。

分解:

1.触摸时:分别将上一页和下一页显示并置于屏幕的上面和下面;

2.滑动时:上一页和下一页跟着滚动,当前页面进行缩小操作;

3.手指离开时:根据滚动的距离判断,如果大于阀值就将上一页或者下一页滚动到屏幕中间,如果小于就将上一页和下一页回归原地,当前页还原;

        var iniCss = {
            height: document.documentElement.clientHeight,
            width: document.documentElement.clientWidth
        }
        // 初始化高度和宽度
        $('.scroll_box').css(iniCss);
        $('.content_box').css(iniCss);
        // 触摸时
        $('body').on('touchstart', function(event){
                    event.preventDefault(); // 取消默认事件,作用是禁止页面滚动
                    var target = $(event.target).parent(),
                            prev = target.prev('.scroll_box'),
                            next = target.next('.scroll_box'),
                            height = prev.height()||next.height();
                    target.removeClass('animation');
                    if(prev.length !== 0){
                        // 一开始移动时,我们不需要动画
                        prev.removeClass('animation').show().css('-webkit-transform','translate3d(0,'+(-height)+'px,0)');
                    }
                    if(next.length !== 0){
                        next.removeClass('animation').show().css('-webkit-transform','translate3d(0,'+(height)+'px,0)');
                    }
                    window.oldY = event.originalEvent.targetTouches[0].screenY; // 获取点击是的y轴坐标
                })
                // 滑动时
                .on('touchmove', function(event){
                    event.preventDefault();
                    var target = $(event.target).parent(),
                            prev = target.prev('.scroll_box'),
                            next = target.next('.scroll_box'),
                            height = prev.height() || next.height();
                    var newY = event.originalEvent.targetTouches[0].screenY;
                    var distance = window.distance = window.oldY - newY;
                    var scale = 1-Math.abs(distance*0.8)/height;
                    if(prev.length == 0 && distance<0)return;
                    if(next.length == 0 && distance>0)return;
                    target.css('-webkit-transform', 'translateY('+-distance*0.2+'px) scale('+scale+')').css('z-index', -999);
                    next.css('-webkit-transform','translate3d(0,'+(height-distance)+'px,0)');
                    prev.css('-webkit-transform','translate3d(0,'+(-height-distance)+'px,0)');
                })
                // 手指离开时
                .on('touchend', function(event){
                    event.preventDefault();
                    var target = $(event.target).parent(),
                            prev = target.prev('.scroll_box'),
                            next = target.next('.scroll_box'),
                            height = prev.height() || next.height();
                    var distance = window.distance;
                    if(distance > 0){
                        if(next.length == 0)return;
                        if(Math.abs(distance) > 80){
                            prev.hide();
                            target.addClass('animation').css('-webkit-transform', 'translateY('+-distance+'px) scale(0.5)');
                            setTimeout(function () {
                                target.hide();
                            }, 300);
                            next.addClass('animation').css('-webkit-transform','translate3d(0,0,0)');
                        } else {
                            target.addClass('animation').css('-webkit-transform', 'none');
                            next.addClass('animation').css('-webkit-transform','translate3d(0,'+(height)+'px,0)');
                        }
                    } else if(distance < 0){
                        if(prev.length == 0)return;
                        if(Math.abs(distance) > 80){
                            next.hide();
                            target.addClass('animation').css('-webkit-transform', 'translateY('+(height+distance)+'px) scale(0.5)');
                            setTimeout(function () {
                                target.hide();
                            }, 300);
                            prev.addClass('animation').css('-webkit-transform','translate3d(0,0,0)');
                        } else {
                            target.addClass('animation').css('-webkit-transform', 'none');
                            prev.addClass('animation').css('-webkit-transform','translate3d(0,'+(-height)+'px,0)');
                        }
                    }
                    target.css('z-index', 0);
                });

代码我已经提交到CSDN CODE,地址是:https://code.csdn.net/jasondu264/scroll

效果地址:http://duguangwei.sinaapp.com/app.html

时间: 2024-12-23 20:21:57

维多利亚的秘密微信推广广告模仿-图片上下滑动的相关文章

微信推广功能支持图片广告和投放外链广告

微信推广功能公测一段时间了,之前只支持图文消息底部文字广告,更直观的图片广告的推出是众望所归,这不,微信公众平台就发布“推广功能新增图片广告,并支持投放外链(公测)”的公告了 1. 推广功能新增图片广告规格,现在已有图片和文字链两种广告规格 2. 开通了微信支付的公众号,成为广告主后,可投放外链广告 微信推广功能一直处于内测阶段,是在大量的A/B测试,毕竟6亿多用户众口难调,必须多试验一些,提出一个折中方案,相信会越来越完善,传统的广告平台现在应该感到压力山大了吧? 微信推广功能支持图片广告和投

微营销课程之微信营销广告

当前SNS营销平台,微信营销无非是国内最火爆的,但同时问题来了.如果你想做微信营销,广告要注意那些方面呢,今天小编就来给大家上一堂SNS营销课程.本文来自于e良师益友网 一.你为什么要做微信营销? 是因为大家都在做微信营销吗?要知道所有人都在做同一件事情有时候也不一定是正确的,比如都站在船的一边. 是因为觉得自己不在微信上做营销的话就会处于被动地位吗?如果你不弄懂为什么要做微信营销这个问题,那么即便做了微信营销,你也会处于被动地位 是因为你觉得微信这种独特的产品模式更适合做营销吗?那么微信与其他

如何屏蔽百度推广广告?

1.屏幕百度搜索的广告,以及新闻.贴吧.知道.音乐.图片.视频.文库等 谷歌浏览器使用插件:点击设置-更多工具-扩展程序-更多扩展程序,然后搜索这个,安装(可能需要FQ) 2.屏蔽百度推广广告 未屏蔽之前 屏蔽之后 方法: 修改C:\Windows\System32\drivers\etc\hosts文件 添加如下 127.0.0.1 cpro.baidu.com 127.0.0.1 bes.baidu.com 127.0.0.1 pos.baidu.com

微信推广12条简单方法

一.合作互推    毋庸置疑,合作共赢的力量很是强大,你可以把粉丝做到1000个后才开始找人合作互推,每次互推,效果好的话都会获得上百的粉丝.         二.利用微博大号进行推广    微信与微博息息相关,微博也会有移动客户端,同时它的灵巧性也是十分大,利用大号微博能够迅速帮助草根微博获得大量粉丝,因此微信也不例外,利用微博大号来快速增加微信粉丝量. 三.线上的其他平台推广    国内的许多SNS社交网站都是我们进行微信公众平台推广的好去向,也是做微信营销哥们热衷去的地方,比如人人啊!豆瓣

微信公众号_微信推广策略与方法

我们做营销就要与时俱进,互联网一直在变幻,所以我们也应该注意去调整,虽然说普遍撒网的方式不可取,但是如果你不把网撒的大一点,就不会知道究竟哪里才有鱼!随着智能手机的普及,随之而出的各种软件也开始火爆起来,其中我们就来说说微信的营销! 如今,我们已能看到一些企业运用微信的营销案例.他们是怎样运用微信进行营销的?下面就来介绍下这些方法. 1.二维码 在微信中,用户可以通过扫描识别二维码身份来添加朋友.关注企业账号.企业可以设定自己品牌的二维码,用折扣和优惠来吸引用户关注,开拓O2O的营销模式. 2.

非微信图文网页,微信浏览器点击图片弹出自带图片浏览 (原创请勿转载)

微信图文网页点击插入的图片,会在微信的图片浏览器上浏览图片可以放大缩小,但是自己做的网页没有这个功能,下面我就来介绍一下这个功能,做出一个完美一点的demo.如果不想看过程直接到最后看demo... 教程需要:脚本编辑器(记事本或者是notepad++.DW都可以).jquery.js.微信浏览器作为测试 如下图效果 我们用到的是微信内置JsAPI的一个,这个函数在微信的开发者平台文档里我没有找到,是在网上搜到的. WeixinJSBridge.invoke('imagePreview',{  

微信端网页中图片的展示方式

一.微信端网页中图片的展示方式 微信端网页中图片有两种展示方式:平铺与图集.平铺的时候文档内的所有图片全部展开,点击图片则放大.图集的时候只展示一张图片,点击图片的时候以翻页的方式展示一组图片.实现原理对于如下一个图片标签,data-gid用于存放组标识,同一组的data-gid相同.data-index用于存放组中图片的展示顺序,不能相同.onclick中根据data-src处理图片展示.对于图集就只显示一张其他的img设置为隐藏,src与第一个图片一样,或者为空,这样可以减少网页的加载量,提

微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧!

微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧! 图片上传是非常常见的功能,而多图上传在大多数应用中也是非常常见的,比如微信的朋友圈,微博的动态,都是有九宫格图片的,那这里肯定涉及了多图上传,所以今天我们来一起撸一下,怎么去思考这个实现逻辑! 这里我想到的思路是比较简单的,首先,我们有一个按钮,按钮是上传图片,点击之后弹出某个界面进行图片的选择,一般是九张图片或者十二张,选完之后就直接上传了,大致的流程应该是这个样子,那我们首先来写个按钮 activity_main.xml <?

西安莲湖区企业微信推广营销公司

西安诺可可网络是西安一家知名的微信推广公司,公司有十年推广经验,收获成功案例上万家,今天诺可可网络小编就给大家讲讲有关微信推广的那些事! 随着智能手机的越来越普及,微信已经慢慢的从高收入群体走向大众化,几年之后,或许会出现这样的一个场景,中国智能手机软件市场上微信屹然成了霸主地位,就类似于如今电脑聊天工具中的QQ地位一样,无法撼动. 很多企业把微信当做移动微博,总是一味的在向客户传达信息,而没有认真的关注客户的反馈.有互动功能的,也只是在微信后台设置好一些快捷回复的方案,但这种缺乏人性化的沟通方