【应用】图片翻转js

图片翻转:图片随着鼠标指针划过进行替换

<img src="example.gif" onmouseover="this.src=‘exampleTwo.gif‘" onmouseout="this.src=‘example.gif‘" />

像图片翻转这样的效果需要较高的响应度,这也意味着需要想办法来确保一些必要的图片预提取,让浏览器缓存起来。

客户端JavaScript定义了一个专用API来达到这一目的:

为了强制让图片缓存起来,首先利用Image()构造函数来创建一个屏幕外图像对象,之后,对该对象的src属性设置成期望的URL。

由于图片元素并没有添加到文档中,因此,它是不可见的,但浏览器还是会加载图片并将其缓存起来。

这样一来,之后当设置成同样的URL来显示该屏幕内的图片时,它会很快从浏览器换从中加载,而不需要通过网络加载。

<!DOCTYPE html>
<html>
<head>
    <title></title>
<style>
    img{
        position: absolute;top: 0;bottom: 0;left: 0;right: 0;
        margin: auto;
    }
</style>
</head>
<body>
<img src=‘{$Think.const.IMG_SRC}1.jpg‘ data-rollover="{$Think.const.IMG_SRC}2.jpg" width="300px" height="300px">

<script>
    /*当文档载入完成时调用一个函数*/
    //注册函数f,当文档载入完成时执行这个函数f
    //如果文档已经载入完成,尽快以异步方式执行它。
    function onLoad(f){
        if(onLoad.loaded)   //如果文档已经载入完成
            window.setTimeout(f,0); //将f放入一部队列,并尽快执行它
        else if(window.addEventListener) //注册事件的标准方法
            window.addEventListener("load",f,false);
        else if(window.attachEvent) //ie8以及更早的ie版本浏览器注册事件的方法
            window.attachEvent("onload",f);
    }
    //给onload设置一个标志,用来指示文档时候加载完成
    onLoad.loaded=false;
    //注册一个函数,当文档载入完成时设置这个标志
    onLoad(function(){
        onLoad.loaded=true;
    });
    /*优雅的图片翻转实现方式
    *
    * 在img元素上使用data-rollover 属性来指定翻转图片的url即可
    *
    * */
    onLoad(function(){
        //所有处理程序都在一个匿名函数中,不定义任何符号
        //遍历所有的图片,查找data-rollover 属性
        for(var i=0;i<document.images.length;i++){
            var img=document.images[i];
            var rollover=img.getAttribute(‘data-rollover‘);
            if(!rollover) continue; //跳过没有data-rollover 属性的图片

            //确保将翻转的图片缓存
            (new Image()).src=rollover;

            //定义一个属性来标志默认的图片URL
            img.setAttribute("data-rollout",img.src);

            //注册时间处理函数来创建翻转效果
            img.onmouseover=function(){
                this.src=this.getAttribute("data-rollover");
            };
            img.onmouseout=function(){
                this.src=this.getAttribute("data-rollout");
            }
        }
    });

 </script>
</body>
</html>
时间: 2024-08-30 05:10:56

【应用】图片翻转js的相关文章

CSS图片翻转动画技术详解

因为不断有人问我,现在我补充一下:IE是支持这种技术的!尽管会很麻烦.需要做的是旋转front和back元素,而不是旋转整个容器元素.如果你使用的是最新版的IE,可以忽略这一节.IE10+是支持的,IE9完全不支持CSS动画. CSS动画非常的有趣:这种技术的美就在于,通过使用很多简单的属性,你能创建出就连皮克斯动画制作公司也会赞叹的漂亮的消隐效果.其中代表性的一种就是CSS图片翻转效果,能让你看到一张卡片的正反两面上的内容.本文就是要用最简单的方法向大家介绍如何创建这种效果. 简单说明:这并不

用css实现图片翻转

<!doctype html><html><head><meta charset="utf-8"><title>用css实现图片翻转</title><script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style>.flip-container { perspecti

JavaScript图片翻转

<script type="text/javascript"> /** * 注册函数f,当文档加载问成时执行这个函数f * 如果文件已经载入完成,尽快以异步方式执行它 */ function onLoad(f){ if(onLoad.loaded) window.setTimeout(f,0); else if(window.addEventListener) window.addEventListener("load",f,false); else i

CSS3图片翻转切换案例及其中重要属性解析

图片翻转切换,在不使用CSS3的情况下,一般都是使用JS实现动画,同时操作元素的width和left,或者height和top以模拟翻转的效果,并在适当时候改变src或者z-index实现图片切换. 无意中发现CSS3的方案, http://www.webhek.com/css-flip/  赶紧学习并总结如下 先上代码(多数照搬自上述链接,有很大兼容问题,小心使用) HTML: <div class="flip-container"> <div class=&quo

Javascript实现图片翻转

使用Js的对象属性能实现简单的翻转效果.通过onMouseover事件和onMouseOut事件就能实现鼠标移到链接上和移开链接发生反应.给两个图片加上链接实现都能翻转的效果. reverse.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片翻转Demo</title> <style type="text/css&

新产品为了效果,做的比较炫,用了很多的图片和JS,所以前端的性能是很大的问题,分篇记录前端性能优化的一些小经验。

第一篇:HTTP服务器 因tomcat处理静态资源的速度比较慢,所以首先想到的就是把所有静态资源(JS,CSS,image,swf) 提到单独的服务器,用更加快速的HTTP服务器,这里选择了nginx了,nginx相比apache,更加轻量级, 配置更加简单,而且nginx不仅仅是高性能的HTTP服务器,还是高性能的反向代理服务器. 目前很多大型网站都使用了nginx,新浪.网易.QQ等都使用了nginx,说明nginx的稳定性和性能还是非常不错的. 1. nginx 安装(linux) htt

图片旋转js代码

function rotateImage(imgId) { imageToRotate = document.getElementById(imgId); imageToRotate.style.filter= "progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand')"; rotate(); } var imageToRotate; var degreeToRotate=0; function rotat

HTML5 file API加canvas实现图片前端JS压缩并上传 (转载)

一.图片上传前端压缩的现实意义 对于大尺寸图片的上传,在前端进行压缩除了省流量外,最大的意义是极大的提高了用户体验. 这种体验包括两方面: 由于上传图片尺寸比较小,因此上传速度会比较快,交互会更加流畅,同时大大降低了网络异常导致上传失败风险. 最最重要的体验改进点:省略了图片的再加工成本.很多网站的图片上传功能都会对图片的大小进行限制,尤其是头像上传,限制5M或者2M以内是非常常见的.然后现在的数码设备拍摄功能都非常出众,一张原始图片超过2M几乎是标配,此时如果用户想把手机或相机中的某个得意图片

一些浏览器智能翻转图片,php判断并复制(覆盖)带有Orientation图片翻转信息的JPEG图片

/** * 处理带有Orientation图片翻转信息的JPEG图片 * param $imagePath 图片资源路径 * param $dscPath 目标路径 * 照片中EXIF Orientation 参数让你随便照像但都可以看到正确方向的照片而无需手动旋转(前提要图片浏览器支持,Windows 自带的不支持) * * */public static function delImgOrientation($imagePath, $dscPath = null){ /* exif_imag