×

html图片特效

html图片特效(HTML5中,如何为图片制作放大镜效果)

admin admin 发表于2023-09-20 07:34:22 浏览32 评论0

抢沙发发表评论

本文目录

HTML5中,如何为图片制作放大镜效果

制作图片的放大效果我考虑到的方法是将原始图片绘制到canvas上,然后在对canvas进行局部裁剪最后对裁剪的部分进行放大,这样就可以实现放大镜的效果。

这里我给出一个实现这个想法的示例。该示例实际上就是运用HTML5 canvas中对画布进行裁剪与保存画布状态的相关知识实现的。

上面是给出示例的效果图。这是不是你想要的放大镜效果呢?

下面我们来看下示例代码:在这个示例中当你点击图片时图片就会出现上图效果,再一次点击时就变成原始图片了。

《!DOCTYPE html》

《html》

  《head》

    《meta charset=“utf-8“》

    《title》放大镜《/title》

《!—HTML代码设计:一个简单的canvas元素--》  

《/head》

  《body》

      《div id=“result-stub“ class=“well hidden“》

            《canvas id=“canvas“ width=“345“ height=“345“》

                《p》你的浏览器不支持canvas元素《/p》

            《/canvas》

      《/div》

    《script》

window.onload=function() {

    //获取canvas对象以及图片对象

         var

           canvas = document.getElementById(’canvas’),

           img = new Image(),

           context = null,

           dataUrl = null,

//设置一个标记,该标记的作用是控制我们点击canvas时放大镜效果的消失和出现

           isMagnified = false,

 

 

 

//init函数只要是在图片加载时绘制出图形

  init = function() {

      img.onload = function() {

//绘制原始图片                            

  context.drawImage(img, 0, 0);

       //将图片信息转化为二进制信息或者URL信息存储在dataUrl中方便后面调用

      dataUrl = canvas.toDataURL();

                        }

       img.src = ’fist-pump-baby.jpg’;

       //设置标记值

       isMagnified = false;

        },

       //magnify函数的作用是绘制具有放大镜效果的图形        

         magnify = function() {

            //保存当前画布的绘制状态即画布绘制原始图片的状态。方便我们在后面恢复到绘制原始图片的状态

              context.save();

//因为放大镜的圆圈和把手是通过canvas绘制的这里设置了一些绘制把手和圆圈的样式属性。

              context.lineWidth = 10;// 线条宽度

              context.shadowColor = ’#000’;// 阴影的颜色黑色

              context.shadowBlur = 15;// 模糊级别为15

              context.shadowOffsetX = 5;// 形状与阴影的水平距离5

              context.shadowOffsetY = 5;// 形状与阴影的垂直距离5

//保存画布当前状态即我们设置阴影属性后的状态方便后面使用

                        context.save();  

//绘制出放大镜把手的图形                      

context.beginPath();

                        context.moveTo(230, 230);

                        context.lineCap = ’round’;

                        context.lineWidth = 30;

                        context.lineTo(285, 285);

                        context.stroke();

//对图片进行裁剪,裁剪出的图形是一个圆形。

                        context.beginPath();

 

                        context.arc(

                                    150,

                                    150,

                                    115,

                                    0,

                                    Math.PI * 2,

                                    true);

 

                        context.clip();

//创建一个新的Image对象,这个Image对象的图片资源是前面存储在dataUrl中的图片资源。所以这个Image对象和之前初始化的Image对象是完全一样的。

                        var magnified = new Image();

                   magnified.src = dataUrl;

//对Image对象进行放大1.5倍,并进行绘制。注意此时的画布状态时裁剪为一个圆形的状态,所以这里绘制的也仅仅是图片中的一个圆形区域。这里为了绘制出图片中娃娃的脸设置了绘制的图片有一定的偏移量。

                        context.scale(1.5, 1.5);

                        context.drawImage(img, -40, -40);

//调用restore()函数将画布状态恢复到绘制把放大镜把手时的状态,即具有阴影属性

                        context.restore();

//绘制放大镜的圆圈,即绘制刚刚我们裁剪出来图片的边框。这样刚刚裁剪出来的圆形图形就会正好处于放大镜的圆圈中。

                        context.arc(

                                    150,

                                    150,

                                    115,

                                    0,

                                    Math.PI * 2,

                                    true);

                        context.stroke();

//重置画布,将画布恢复到绘制元素图片的状态,以方便绘制出放大效果后,再次点击是绘制原始图片。

                        context.restore();

//设置标记值,实现点击后放大效果消失。

                        isMagnified = true;

                    };

 

//加载初始化代码,即当运行页面时会在页面绘制出一个原始图像

                    init();

               //监听画布的点击事件,当点击页面的图像时会根据标记的值来进行判断是否对画布进行方大处理                    

$(’canvas’).click(function() {

                        if (isMagnified) {

                            init();//绘制原始图像

                        }

                        else {

                            magnify();//绘制放大的图像

                        }

                    });

       }

    《/script》

    《script src=“jquery.js“》《/script》

  《/body》

《/html》

对于这些知识在一个叫秒秒学的教程网站上有相关的学习资料,有兴趣的可以自己去看看,希望对你有帮助。

如何在HTML中实现图片的滚动效果

素材的准备。为了更好的表现网站的风格和特色,具备一些更富表现力和吸引力的图片是必不可少的。同理,小编也准备了一些与网页主题密切相关的图片,用于做为实现图片滚动效果的素材。

打开Dreamweaver8,新建一网页文件,并保存为名为“index.html“文件。

切换至代码界面,输入如下代码:

《body》《div id=“photo-list“》  《ul id=“scroll“》  《li》《a href=“#“》《img src=“images/1.jpg“ width=“100px“ height=“100px“ alt=““/》《/a》《/li》  《li》《a href=“#“》《img src=“images/2.jpg“ width=“100px“ height=“100px“ alt=““/》《/a》《/li》  

《li》《a href=“#“》《img src=“images/3.jpg“ width=“100px“ height=“100px“ alt=““/》《/a》《/li》  《li》《a href=“#“》《img src=“images/4.jpg“ width=“100px“ height=“100px“ alt=““/》《/a》《/li》  《li》《a href=“#“》《img src=“images/5.jpg“ width=“100px“ height=“100px“ alt=““/》《/a》《/li》  《li》《a href=“#“》《img src=“images/6.jpg“ width=“100px“ height=“100px“ alt=““/》《/a》《/li》    《/ul》 《/div》《/body》

新建一CSS样式表文件,并将该文件保存到与“index.html”相同的目录下,文件名称为“MyStyle.css“。

在新建的样式表文件“MyStyle.css”文件中输入如下代码:

* { padding:0; margin:0;}       /*设置所有对像的内边距为0*/body { text-align:center;}      /*设置页面居中对齐*/#photo-list {/* 6张图片的宽度(包含宽度、padding、border、图片间的留白)计算:6*(100+2*2+1*2+9) - 9 之所以减去9是第6张图片的右边留白 */width:681px;  

/* 图片的宽度(包含高度、padding、border)计算:100+2*2+1*2  */height:106px;margin:50px auto;overflow:hidden;     /*溢出部份将被隐藏*/ 

border:1px dashed #ccc;  }  #photo-list ul { list-style:none;}  #photo-list li { float:left; padding-right:9px;}  

#photo-list img { border:1px solid #ddd; background:#fff; padding:2px;}

在网页文件“index.html“中添加对该样式表的引用:

《link rel=“stylesheet“ type=“text/css“ href=“MyStyle.css“》

新建一个JS文件,并将该文件另存为“MoveEffect.js“。

在”MoveEffect.js“文件中输入如下所示代码:

var id = function(el) {          return document.getElementById(el);        },c = id(’photo-list’);if(c) {

var ul = id(’scroll’),lis = ul.getElementsByTagName(’li’),itemCount = lis.length,width = lis.offsetWidth, //获得每个img容器的宽度marquee = function() {c.scrollLeft += 2;if(c.scrollLeft % width 《= 1){  //当 c.scrollLeft 和 width 相等时,把第一个img追加到最后面

ul.appendChild(ul.getElementsByTagName(’li’));c.scrollLeft = 0;};},speed = 50; //数值越大越慢ul.style.width = width*itemCount + ’px’; //加载完后设置容器长度  

var timer = setInterval(marquee, speed);c.onmouseover = function() {clearInterval(timer);};c.onmouseout = function() {timer = setInterval(marquee, speed);};};

然后在主页文件“index.html”中添加对该“MoveEffect.js”文件的引用。

《script type=“text/javascript“ src=“MoveEffect.js“》《/script》

打开“index.html”网页文件,最终效果如果所示:

html鼠标移动到超链接上时,显示图片的效果怎么做的

需要准备的材料分别有:电脑、浏览器、html器。

1、首先,打开html器,新建html文件,例如:index.html,输入问题基础代码。

2、在index.html中的《script》标签中,输入js代码:

$(’a’).hover(function () {$(’img’).css(’display’, ’block’);})

3、浏览器运行index.html页面,此时鼠标移动到超链接上,下面的图片自动显示了出来。

在网页制作中,怎么把图片应用为动态HTML效果

用PS做的是效果图,需要前端开发人员编写代码才可以在网站上展示出来。简单来说,在PS里做好之后,需要切图。把图片切割成适合在网站上浏览。切图时需要把文字分离出图片的要处理好。切好图片之后,需要用html结合JavaScript等知识编写代码。这样写出的页面还只是静态的网站。如果想要做成动态的效果,还需要搭建后台,连接数据库等。

html5怎样做出图片转圈的动画效果

可以使用css3中的rotate实现

实际的旋转效果是这样:

rotate中的 60deg 表示按最原始的位置,顺时针旋转60°

w3school 里面有更详细用法,可以2D旋转、3D旋转

可以参考:网页链接

动画效果可以通过js改变rotate中传入的值来实现