使用图片touch事件模拟按钮点击效果&&图片预加载

模拟按钮点击效果踩坑

1 先说移动端300ms延迟

  关于300ms延迟这个网址:http://developer.telerik.com/featured/300-ms-click-delay-ios-8/有详细的说明于解决方案,在这里不再赘述,由于项目需求,我又测试了一下客户端touchstart touchend click三个事件的触发顺序测试代码如下:

<body>
	<div class="btn">
		<img src="./img/pointer-normal.png">
	</div>
	<div>
		<label>touchstart:</label>
		<span class="start"></span>
	</div>
	<div>
		<label>touchend:</label>
		<span class="end"></span>
	</div>
	<div>
		<label>click:</label>
		<span class="click"></span>
	</div>
</body>
<script type="text/javascript">
	var btn = document.querySelector(‘.btn‘);
	var img = document.querySelector(‘img‘);
	var start = document.querySelector(‘.start‘);
	var end = document.querySelector(‘.end‘);
	var click = document.querySelector(‘.click‘);

	btn.ontouchstart = function(){
		start.innerHTML = Date.now();
		img.setAttribute(‘src‘,‘./img/pointer-click.png‘);
	}
	btn.ontouchend = function(){
		end.innerHTML = Date.now();
		img.setAttribute(‘src‘,‘./img/pointer-normal.png‘);
	}
	btn.onclick = function(){
		click.innerHTML = Date.now();
	}

测试结果 touchstart : 1466823602 819

     touchend:1466823602 876

     click:1466823602 879

最新版的安卓机浏览器和最新版的iphone浏览器测试结果相差无几,touchend 和 click事件的触发时间 间隔很短 用户不能明显感知得到,但是为了兼容以前的版本 使用 click时 最好还是使用fastclick解决延迟时间。

2 模拟点击效果的过程中 我才采用切换图片来实现初始代码如上图,但是在测试的过程中发现有一大部分一定端浏览器并不能实现这个效果,于是便开始分析原因,在设置了图片src后,我将图片的src打印了出来,发现src是变了,但是图片没有切换成功,我觉得应该是图片加载的问题,于是我先预加载了图片,代码如下:

var preLoad = new Image();
	preLoad.src=‘./img/pointer-click.png‘;
	preLoad.onload = function(){
		btn.ontouchstart = function(){
			start.innerHTML = Date.now();
			img.setAttribute(‘src‘,‘./img/pointer-click.png‘);
		}
		btn.ontouchend = function(){
			end.innerHTML = Date.now();
			img.setAttribute(‘src‘,‘./img/pointer-normal.png‘);
		}
		btn.onclick = function(){
			click.innerHTML = Date.now();
		}
	}

之后测试了一下 果然 成功了。

时间: 2024-10-25 06:20:30

使用图片touch事件模拟按钮点击效果&&图片预加载的相关文章

图片预加载

随着移动互联网的火热发展,手机上的APP越来越多,包括web app和native app等.其中web app最离不开网速问题,尤其是游戏等应用.尽管现在的网速变得越来越快了,但是我们为了更好的用户体验,常常对会游戏里用到的资源进行预加载.例如图片等,以我今天做的一个小游戏为例. 我在游戏场景中,用了近三十张图片,如果在运行时才加载的话,必然会很不流畅. 在用户进入页面时,先加载背景,同时给页面加了个cover以及loading. 1.记录图片名 首先,给所需要预加载的图片名存为数组,或者有规

html+js实现图片预加载(异步加载)

在前端设计时,为了让某县页面的图片即使缓存到浏览器中,一般使用预加载技术,但更为确切的应该称为异步加载,因为对线程不会造成阻塞. 核心代码 <script type="text/javascript">   function loadImage(id,src,callback)   { var img = new window.Image(); //当图片成功加载到浏览器缓存 img.onload =function(evt)   { if(typeof(img.ready

C++用PostMessage模拟按钮点击

有时我们可能会在某个程序中用到模拟按钮点击事件. 本文中的例子在MFC程序中调试通过,duilib的没试过,还需探索 不多说,上代码: 1 #include "stdafx.h" 2 #include "windows.h" 3 #include "Psapi.h" 4 #include "atlstr.h" 5 #include <string.h> 6 #include<iostream> 7 us

android checkBox背景样式及用颜色值实现按钮点击效果

1  使用颜色值(不使用图片)来实现按钮的点击效果: color.xml <color name="head_color">#836FFF</color> <color name="information_title_color">#666666</color> <color name="list_bg_color">#FFF4F4F4</color> <color n

按钮点击效果(水波纹)

近来看到个不错的按钮点击效果,当点击时产生一次水波涟漪效果,挺好玩的,于是简单的实现了下(没考虑低版本浏览器兼容问题) 先看看效果吧,如下图(录制gif软件有点渣,看起来卡卡的...) 这种效果可以由元素内嵌套canves实现,也可以由css3实现. Canves实现 网上摘了一份canves实现的代码,略微去掉了些重复定义的样式并且给出js注释,代码如下 html代码 <a class="btn color-1 material-design" data-color="

jQ禁止右键点击、隐藏搜索文本框文字、在新窗口中打开链接、检测浏览器、预加载图片、页面样式切换、所有列等高、动态控制页面字体大小、获得鼠标指针的X值Y值、验证元素是否为空、替换元素、延迟加载、验证元素是否存在于Jquery集合中、使DIV可点击、克隆对象、使元素居中、计算元素个数、使用Google主机上的Jquery类库、禁用Jquery效果、解决Jquery类库与其他Javascript类库冲突

1. 禁止右键点击 代码如下: $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }); }); 2. 隐藏搜索文本框文字 代码如下: $(document).ready(function() { $("input.text1").val("Enter your search text here"); textFill($

Android下实现win8的按钮点击效果

原理就是自定义一个imageButton,实现动画效果 demo源码下载地址:  请戳这里----------------> 关于回弹张力的效果扩展,可以参考Facebook的开源动画库rebound: https://github.com/facebook/rebound Android下实现win8的按钮点击效果

关于图片预加载1

预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验.本文将分享三个不同的预加载技术,来增强网站的性能与可用性. 方法一:用CSS和JavaScript实现预加载 实现预加载图片有很多方法,包括使用CSS.JavaScript及两者的各种组合.这些技术可根据不同设计场景设计出相应的解决方案,十分高效.

JS实现图片预加载无需等待

网站开发时经常需要在某个页面需要实现对大量图片的浏览;用javascript来实现一个图片浏览器,让用户无需等待过长的时间就能看到其他图片 网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考虑流量的话,大可以像pconline一样每个页面只显示一张图片,让用户每看一张图片就需要重新下载一下整个页面.不过,在web2.0时代,更多人愿意用javascript来实现一个图片浏览器,让用户无需等待过长的时间就能看到其他图片. 知道了一张图片的地址,需要把它在一个固定大小的html容器(可以是