css特效js实例(css3网页特效)

发布时间:2023-12-08

css特效js实例(css3网页特效)

更新:2022-11-13 06:10

本文目录一览:

  1. 如何用JS和CSS3制作炫酷的弹窗效果
  2. 导航条js+css特效代码怎么用
  3. 怎样用js触发css的过渡效果
  4. 如何用css,js实现如图效果
  5. js+css实现文字散开重组动画特效代码分享

如何用JS和CSS3制作炫酷的弹窗效果

首先回忆一下弹窗的实现,一般我们分为两层,弹出窗口层(popus)和遮罩层(mask),通常情况下我习惯就这两元素全部设成fixed定位,具体和absolute区别一试便知。对于mask层自不用多少,我们如下给他设置属性,让他铺满整个屏幕。

.mask {
  position: fixed;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  background-color: #000;
  opacity: 0.6;
  filter: alpha(opacity=60);
}

popus层则要稍微麻烦点儿,这里我们有两种实现方法:

  1. 已知大小的弹窗,如下,主要通过top, left与负的margin来实现。
.popus {
  width: 300px;
  height: 200px;
  position: fixed;
  left: 50%;
  top: 50%;
  margin-left: -150px;
  margin-top: -100px;
  background-color: #000;
}
  1. 未知弹窗大小,则通过js获取弹窗层的width与height,然后在进行如上设置,在此不多述。
  2. 在支持css3的情况下,我们不需要知道弹窗的宽高,便可进行如下设置:
.popus {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

主要通过translate属性来设置,偏移的值百分比是相对于本身的宽高,因此从原理上来说跟第一种写法有异曲同工之妙,不过使用却更方便。 言归正传,下面我们回归到正题,即让元素实现ps中高斯模糊的效果。 这里引出一个css属性:filter,注意这里的filter并不是ie中的filter,filter有很多值,感兴趣的可以点击这里,作者讲的非常详细。我们今天只讲其中的一个blur,首先看下面的预览图。 ps:目前来说该属性只支持webkit浏览器,所以我们直接使用了css3属性,效果也需要在webkit浏览器中查看。 是不是很神奇,其中起作用的代码就这一行 -webkit-filter:blur(8px),后面的像素值即代表模糊程度,当然在日常项目中,我们还可以加一些动画,使页面更加的生动,本案例完整代码如下:

<div class='bg'>
  <img src='bg.jpg' />
</div>
<div class='popus'>
  效果是不是要好过纯色加透明呢
  <div class='left btn'>确实不错</div>
  <div class='right btn'>也就那样</div>
</div>

CSS:

* {
  padding: 0px;
  margin: 0px;
}
img {
  width: 100%;
  margin: 0px auto;
  display: block;
}
.bg.blur {
  -webkit-filter: blur(8px);
}
.popus {
  width: 400px;
  color: #000;
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  font-family: "微软雅黑";
  padding: 20px 0px;
  font-weight: bold;
  background-color: rgba(255, 255, 255, 0.6);
  border-radius: 18px;
  text-align: center;
  padding: 30px 0px;
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.4);
  display: none;
}
.popus div {
  width: 220px;
  margin: 10px auto;
}
.popus div.btn {
  width: 80px;
  padding: 5px 10px;
  color: #000;
}
.left {
  float: left;
  border: 1px solid #000;
}
.popus div.btn.right {
  float: right;
  color: #666;
}

JS:

$('.bg').on('click', function () {
  console.log(98);
  $(this).addClass('blur');
  $('.popus').show();
});
$('.btn').on('click', function () {
  $('.bg').removeClass('blur');
  $('.popus').hide();
});

这样是不是就完了?很明显不是,看控制台。 当我们弹出窗口外,肯定要禁止掉我们其他层的点击事件,但是我们发现目前我们虽然将其他层模糊化了,但是并没有禁止掉相应的事件,当然解决办法也很简单,我们可以加一层没有背景颜色的遮罩层,覆盖在页面上,这样我们每次点击作用在遮罩层上,自然不会触发底层的事件了。

导航条js+css特效代码怎么用

导航条js+css特效一般都用于首页index文件,作为网站的主页栏目导航。

  1. 打开Dreamweaver创建新页面,输入以下代码。如图:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <title>css菜单演示</title>
  <style type="text/css">
    * {
      margin: 0;
      padding: 0;
      border: 0;
    }
    body {
      font-family: arial, 宋体, serif;
      font-size: 12px;
    }
    #nav {
      line-height: 24px;
      list-style-type: none;
      background: #666;
    }
    #nav a {
      display: block;
      width: 80px;
      text-align: center;
    }
    #nav a:link {
      color: #666;
      text-decoration: none;
    }
    #nav a:visited {
      color: #666;
      text-decoration: none;
    }
    #nav a:hover {
      color: #FFF;
      text-decoration: none;
      font-weight: bold;
    }
    #nav li {
      float: left;
      width: 80px;
      background: #CCC;
    }
    #nav li a:hover {
    }
    #nav li a.on {
      background: #999;
    }
    #nav li ul {
      line-height: 27px;
      list-style-type: none;
      text-align: left;
      left: -999em;
      width: 180px;
      position: absolute;
    }
    #nav li ul li {
      float: left;
      width: 180px;
      background: #F6F6F6;
    }
    #nav li ul a {
      display: block;
      width: 180px;
      width: 156px;
      text-align: left;
      padding-left: 24px;
    }
    #nav li ul a:link {
      color: #666;
      text-decoration: none;
    }
    #nav li ul a:visited {
      color: #666;
      text-decoration: none;
    }
    #nav li ul a:hover {
      color: #F3F3F3;
      text-decoration: none;
      font-weight: normal;
      background: #C00;
    }
    #nav li:hover ul {
      left: auto;
    }
    #nav li.sfhover ul {
      left: auto;
    }
    #content {
      clear: left;
    }
  </style>
  <script type="text/javascript">
    $(function () {
      $("#nav li").hover(function () {
        $(this).children("a").toggleClass("on");
      });
    });
    function menuFix() {
      var sfEls = document.getElementById("nav").getElementsByTagName("li");
      for (var i = 0; i < sfEls.length; i++) {
        sfEls[i].onmouseover = function () {
          this.className += (this.className.length > 0 ? " " : "") + "sfhover";
        };
        sfEls[i].onMouseDown = function () {
          this.className += (this.className.length > 0 ? " " : "") + "sfhover";
        };
        sfEls[i].onMouseUp = function () {
          this.className += (this.className.length > 0 ? " " : "") + "sfhover";
        };
        sfEls[i].onmouseout = function () {
          this.className = this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
        };
      }
    }
    window.onload = menuFix;
  </script>
</head>
<body>
  <ul id="nav">
    <li><a href="#">百度知道</a>
      <ul>
        <li><a href="#">百度芝麻</a></li>
        <li><a href="#">产品一</a></li>
        <li><a href="#">产品一</a></li>
        <li><a href="#">产品一</a></li>
        <li><a href="#">产品一</a></li>
        <li><a href="#">产品一</a></li>
      </ul>
    </li>
    <li><a href="#">百度行家</a>
      <ul>
        <li><a href="#">服务二</a></li>
        <li><a href="#">服务二</a></li>
        <li><a href="#">服务二</a></li>
        <li><a href="#">服务二</a></li>
        <li><a href="#">服务二</a></li>
        <li><a href="#">服务二</a></li>
      </ul>
    </li>
    <li><a href="#">百度芝麻酱</a>
      <ul>
        <li><a href="#">案例三</a></li>
        <li><a href="#">案例三</a></li>
      </ul>
    </li>
    <li><a href="#">关于百度</a>
      <ul>
        <li><a href="#">关于百度</a></li>
        <li><a href="#">关于百度</a></li>
        <li><a href="#">关于百度</a></li>
        <li><a href="#">关于百度1</a></li>
      </ul>
    </li>
    <li><a href="#">在线百度</a>
      <ul>
        <li><a href="#">演示</a></li>
        <li><a href="#">演示</a></li>
        <li><a href="#">演示</a></li>
        <li><a href="#">演示演示演示</a></li>
        <li><a href="#">演示演示演示</a></li>
        <li><a href="#">演示演示</a></li>
        <li><a href="#">演示演示演示</a></li>
        <li><a href="#">演示演示演示演示演示</a></li>
      </ul>
    </li>
    <li><a href="#">联系百度</a>
      <ul>
        <li><a href="#">联系百度</a></li>
        <li><a href="#">联系百度</a></li>
        <li><a href="#">联系百度</a></li>
        <li><a href="#">联系百度</a></li>
        <li><a href="#">联系百度</a></li>
        <li><a href="#">联系百度</a></li>
        <li><a href="#">联系百度</a></li>
      </ul>
    </li>
  </ul>
</body>
</html>
  1. 点击F12预览导航效果。如图: 注意事项:代码中的导航分为一级导航和二级感应导航,直接修改为所需栏目名称即可使用。

怎样用js触发css的过渡效果

用js触发css的过渡效果可以用impress.js实现。 以下例子实现了基于CSS3变化和过度效果:

$.jmpress('template', 'arraytemplate', {
  x: 100, y: 100, scale: 2,
  children: [
    { x: 0, y: 150, scale: 0.2 },
    { x: 0, y: 450, scale: 0.3 }
  ]
});

支持现代浏览器Chrome,Safari和Firefox支持.

如何用css,js实现如图效果

左右2个div

position: absolute;

左边保留上下左3个边,右侧保留上下左右4个边 左面z-index大于右边,让左面div压过右面div,压过的宽度正好是边框宽即可,简单示例

.left {
  position: absolute;
  left: 0;
  top: 0;
  width: 100px;
  height: 100px;
  border: 1px solid #CCC;
  border-right: none;
  z-index: 2;
}
.right {
  position: absolute;
  left: 100px;
  top: 0;
  width: 200px;
  height: 150px;
  border: 1px solid #CCC;
  z-index: 1;
}
<div style="position:relative">
  <div class="left"></div>
  <div class="right"></div>
</div>

js+css实现文字散开重组动画特效代码分享

文字散开重组动画这款特效我们可以在输入框中指定任意文字,点击确定按钮后,就会将原先的文字爆炸散去,新的文字以像素点的形式组合起来,看起来非常棒。 运行效果图: 这是输入HAPPY后安按钮后效果,当然可以随便输文字 好酷的特效,连中文都支持,看如下图: 为大家分享的文字散开重组动画特效代码如下

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <title>文字散开重组动画特效</title>
  <link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
</head>
<body>
  <canvas id="text" width="500" height="100"></canvas>
  <canvas id="stage" width="500" height="100"></canvas>
  <form id="form">
    <input type="text" id="inputText" value="脚本之家" />
    <input type="submit" value="TRY IT" />
  </form>
  <script src='js/EasePack.min.js'></script>
  <script src='js/TweenLite.min.js'></script>
  <script src='js/easeljs-0.7.1.min.js'></script>
  <script src='js/requestAnimationFrame.js'></script>
  <script src="js/index.js"></script>
</body>
</html>

以上就是为大家分享的js+css实现文字散开重组动画特效代码,希望大家可以喜欢。