HTML(5)、CSS(3)、JS的一些小案例(放大镜和瀑布流)

html5实现瀑布效果 阅读详情

【入门级别】案例:HTML5、 CSS3  JS (jQuery)实现布局常用瀑布流(两栏,三栏自适应)和类京东放大镜功能。

 有需要欢迎大家下载源码观看~下载链接

三连关注后私信也可以拿源码哦~

移步【进阶】案例:飞翔的小鸟游戏(可以记录最高分和难度选择)

实现效果 

放大镜鼠标移入自动放大,有边界越界处理不会超出指定图片,鼠标移出取消放大

瀑布流浏览器大小改变,二三栏自适应。

效果图

 

 

 

 代码展示

//放大镜
     #small {
            width: 250px;
            height: 250px;
            border: 2px solid black;
            position: relative;
        }

        #small img {
            width: 100%;
        }

        #bigger {
            margin-left: 20px;
            width: 500px;
            height: 500px;
            border: 2px solid black;
            position: relative;
            overflow: hidden;
            display: none;
        }

        #bigger img {
            position: absolute;
        }

        #box div {
            float: left;
        }

        span {
            /* span宽/小div宽=大div宽/大图宽 */
            /* span宽 = 600/800 * 300 */
            width: 156.25px;
            height: 156.25px;
            background-color: blueviolet;
            position: absolute;
            left: 0;
            top: 0;
            opacity: 0.3;
            display: none;
        }


 <script type="text/javascript">
        $("#small").hover(function () {
            $("span").show();
            $("#bigger").show();
        }, function () {
            $("span").hide();
            $("#bigger").hide();
        })
        $("#small").mousemove(function (ev) {
            ev = ev || event;
            var x = ev.pageX - $(this).offset().left;
            var y = ev.pageY - $(this).offset().top;
            x -= $("span").outerWidth() / 2;
            y -= $("span").outerHeight() / 2;
            if (x < 0) {
                x = 0;
            }
            if (y < 0) {
                y = 0;

            }
            if (x > 95) {
                x = 95;

            }
            if (y > 95) {
                y = 95;

            }
            $("span").css({
                left: x,
                top: y
            })
            //让大图随鼠标移动
            //计算出大图移动的距离
            // 水平方向移动的距离的倍数p:
            // 小div宽/x = 大图宽/X
            // p = 大图宽/小div宽 = 800/300=2.667
            $("#bigger img").css({
                left: -3.2 * x,
                top: -3.2 * y
            })
        })
    </script>

 瀑布流

 <style type="text/css">
        * {
            padding: 0;
            margin: 0;
        }

        #box {
            width: 95%;
            margin: 0 auto;
        }

        #box ul {
            width: 100%;
            list-style: none;
            position: relative;
        }

        #box ul li {
            width: 22%;
            margin: 3%;
            padding: 2%;
            position: absolute;
        }

        #box ul li img {
            width: 100%;
        }
    </style>
</head>

<body>
    <div id="box">
        <ul>
            <!-- <img src="img/02.jpg" alt=""> -->
        </ul>
    </div>
</body>
<script type="text/javascript" src="jquery3.5.1.min.js"></script>
<script type="text/javascript">
    var ul = $("#box ul");
    var n = 20;
    
    for (var i = 1; i <= 20; i++) {
        ul.append(`<li><img src=${'img/' + (i < 10 ? ('0' + i) : i) + '.jpg'}></li>`)
        //获取图片
        window.onload = function () {
            //保证图片加载完成
            n--;
            if (n = 1) {
                waterFull();
            }
        }
    }
    function waterFull() {
        var lis = $("#box ul li");//拿出li
        var liWidth = lis.eq(0).outerWidth(true);//获取宽度 包括m  p  b  width
        var colHighArr = [];//创建高度数组
        var cols;
        if ($(window).innerWidth() < 700) {//宽度小于700用两列布局
            cols = 2;
            lis.css("width", "39%");
        }
        else {
            cols = 3;
            lis.css("width", "22%");
        }
        for (var i = 0; i < lis.length; i++) {
            var li = lis.eq(i);
            if (i < cols) {
                li.css({
                    left: i * liWidth,//第一排的位置
                    top: 0
                })
                colHighArr[i] = li.outerHeight(true);//获取三个高度
            }
            else {
                //先找最小列高对应的列号(0或1或2)
                var minHighColIndex = 0;
                if (colHighArr[0] > colHighArr[1]) {//比较高度
                    minHighColIndex = 1;
                }
                if (cols == 3) {
                    if (colHighArr[minHighColIndex] > colHighArr[2]) {
                        minHighColIndex = 2;
                    }
                }

有需要欢迎大家下载源码观看~下载链接

三连关注后私信也可以拿源码哦~

移步【进阶】案例:飞翔的小鸟游戏(可以记录最高分和难度选择)

HTML+CSS07 瀑布布局 预备知识:Column布局 CSS Columns(多列布局)是一种定义了多栏布局的模块,它能够表现出将内容在列之间怎么动的以及间隙分割线怎么使用。浏览器的兼容性还是不错的,生产环境建议-moz-webkit前缀以及不加前缀三种形式共同使用 columns CSS多列布局可以轻松的实现多列的瀑布布局,它的两个关键属性是column-countcloumn-width column-co... 阅读详情

相关推荐

JavaScript实现瀑布效果

今天带来的是js实现瀑布效果的总结,思路如下 确定每行能存放的图片数量(即列数) ① 获取父级对象; ② 获取包含img的div的父级元素对象数组,即获取类名为 box的对象数组; ③ 获取类名为box的div宽度(通过box[0].offsetWidth获取即可); ④ 计算一行内能存放多少图片数量(即列数),并给类名为box的div标签的父级元素定宽,即给类名为container的div...

weixin_44849651的博客 831

html5+css3+javascript 实例源码示例

html5+css3+javascript 实例源码示例 ,web端开发,html5+css3+javascript从入门到精通源码

HTml+js+css 实现浏览器图片的瀑布

可以将照片文件放入images里实现功能,也可以通过遍历字典或者函数递归的方法将所有图片导入做成网页版的相册! 实现文件结构: htmlL部分: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title&gt...

qq_31687191的博客 628

JS+CSS+html做的照片墙,带有点击放大功能

JS+CSS+html做的照片墙,可以自由拖动照片位置,点击照片弹出层放大

10个绝妙的HTML5CSSJavascript示例

http://www.blobsallad.se/ 我还没有深入研究HTML5,但是它太热了,我没法忽略它的存在。 HTML5已经改变了web开发的游戏规则,这里我收集了10个绝妙的HTML5CSSJavascript示例。   提 醒:下面的例子需要在支持HTML5的浏览器里运行,比如:Firefox最新版,Chrome。 Blob Cute little r

sunchunmei555的专栏 1612

HTML5+CSS3+JS小实例:旋转的圣诞树

​实例:旋转的圣诞树。技术栈:HTML+CSS+JS

艾恩小灰灰的博客 1448

HTML5+CSS3+JS小实例:创意罗盘时钟

实例:创意罗盘时钟。技术栈:HTML+CSS+JS

艾恩小灰灰的博客 456

项目实战(一)HTML5+CSS3+JS完成前端网站的制作

制作首页HTML框架: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="X-UA-Compatible" content="ie=edg"> <meta name ="description" conte

weixin_46244909的博客 3万+

HTML5+CSS3+JavaScript 阶段性实践小案例——京东购物车

花了两三天时间将HTML4,HTML5CSS2,CSS3大致学习了一下,现在来做一个网页实践一下,我是准备专攻后端开发的,所以前端只是浅尝辄止,定有不足,欢迎指正。 待更。。

长夜漫漫,无心睡眠 3908

HTML+CSS+JS实现图片的瀑布布局

HTML+CSS+JS实现瀑布布局前言一、总体效果二丶HTML+CSS简单布局三.JS实现后续布局总结 前言 瀑布布局简而言之就是类似瀑布的布局嘛,这么一讲大家可能还是不是很了解明白,来来来,那现在我给大家上一个常见的实例: 相信大家在百度上搜索图片时的时候,网页图片的布局就是这样子的吧,什么?你还是不清楚瀑布,那咱就再我看一个那没关系,淘宝大家应该再熟悉不过了吧! 我们可以发现图中每个商品框的高度不同的,因此导致我们的商品图片的高度布局都不在一个高度上。在百度搜索图片的时候我们发

Transprant的博客 4486

基于纯前端CSS3实现倾角瀑布照片效果显示

常见网页设计作业题材有 个人、 美食、 公司、体育、 化妆品、 物、 环保、 书籍、 婚纱、 军事、 游戏、 节日、 戒烟、 电影、 摄影 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求都能满足你的需求。原始HTML+CSS+JS页面设计, web大学生网页设计作业源码,这是一个不错的2022前端CSS3实现倾角瀑布网页设计制作,画面精明

java李阳勇的博客 5003

HTMLCSSJS 瀑布式布局(实现懒加载)

HTML + JSCSS实现瀑布式布局(包含懒加载) 前几天兴致来了想做一个瀑布布局的网页,然后就有了各种“神操作”,也在网上看了一些相关的知识点;所以这里对自己这几个小时来一个总结 先上效果图 首先来说一下瀑布的原理吧:瀑布是许多数据块组成的,可以是图片,可以是div,但是它们都有一个特点,就是等宽不等高,正是因为它等宽不等高,所以如果按部就班的排布的话,才会出现很大的缝隙,特别不好看,说白了瀑布布局就是充分利用图片之间的空隙来合理的布局,使布局看起来好看,符合人眼的审美。 首先上CSS布局

qq_44386537的博客 9375

Js实现瀑布效果

Js实现瀑布效果 通过JavaScript实现瀑布效果,实现不同大小的图片有序展示 效果图: 核心: 1.将图片宽度固定,用浏览器窗口大小除以每个图片的宽度,求出要分成的列数 2.将每个图片定位 3.每次找到最小高度的列,将图片加到该列后 HTML部分以及CSS样式 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> &lt

weixin_55983004的博客 4916

HTML5 前端瀑布:图片布局方案

瀑布布局(Masonry Layout)是图片类网站(如 Pinterest、花瓣网)最常用的布局方式,它能让不同高度的图片像「瀑布」一样,按列排列但高度参差不齐,既保证视觉畅又最大化利用空间。瀑布的核心原理与应用场景纯 CSS 实现(含兼容性问题)JavaScript 动态计算方案(从原理到代码)性能优化与未来趋势本文从「超市货架」的生活案例切入,先解释瀑布的核心概念,再对比两种主实现方案(CSSJS),最后通过代码实战演示完整程,附赠性能优化技巧与常见问题解答。列。

小白菜的博客 1163

一文入门HTML+CSS+JS(样例后续更新)

层叠样式表提供了丰富的功能,如字体、颜⾊、背景的控制及整体排版等。

nine_mink的博客 5007

HTML5+CSS3+JS小实例:全屏范围滑块

HTML5+CSS3+JS小实例:全屏范围滑块

前端必备小窝 400

Javascript实现全选反选

Javascript实现全选反选

风寻凡 411

大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS

临近期末,大一新生的各种考试专业结课作业纷至沓来。web实训大作业、网页期末作业、web课程与设计、网页设计等,简直让人头大。你还在为网页设计老师的作业要求感到头大?网页作业无从下手?网页要求的总数量太多?没有合适的模板?等等一系列问题。你想要解决的问题,在这篇博文中基本都能满足你的需求, 废话不多说,直接看效果。📔网站布局方面:计划采用目前主的、能兼容各大主浏览器、显示效果稳定的浮动网页布局结构。📓网站程序方面:计划采用最新的网页编程语言HTML5+CSS3+JS程序语言完成网站的功能设计。并确

有问必答,欢迎打扰,项目开发,网页设计 4万+
上一篇: HTML(5)、CSS(3)、JS的一些小案例(360页面)
下一篇: Cookie和Session
qd_yang_
博客等级 码龄5年 26粉丝 21原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qd_yang_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值