js css 悬浮动画字体

简介: js css 悬浮动画字体
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
    <link rel="stylesheet" href="./myStyle.css">
    <link rel="stylesheet" href="animate.min.css">
    <script src="./jquery-3.1.1.min.js"></script>
    <script src="./wow.min.js"></script>
  </head>
  <body>
    <div class="sidbar">
      <!-- 挂件 -->
      <details class="open">
        <summary>
          <span></span>
          <span></span>
          <span></span>
        </summary>
      </details>
      <ul class="menu tupCass">
        <li class="htmlspan">
        </li>
        <!-- <li class="htmlspan">
        </li>
        <li class="htmlspan">
        </li>
        <li class="htmlspan">
        </li> -->
      </ul>
    </div>
    <script type="text/javascript">
      var wow = new WOW({
        boxClass: 'wow',
        animateClass: 'animated',
        offset: 0,
        mobile: true,
        live: true
      });
      let open = document.querySelector(".open")
      let sidbar = document.querySelector(".sidbar")
      let isOpen = false
      open.onclick = () => {
        wow.init();
        if (isOpen == true) {
          sidbar.classList.remove('sidbar-avtive')
          open.classList.remove('active')
        } else {
          sidbar.classList.add('sidbar-avtive')
          open.classList.add('active')
        }
        isOpen = !isOpen
        var span_text = "abcdepoijhtydqq"
        dongHua(span_text)
      }
      function dongHua(span_text) {
        let l = span_text.length
        let sz = 0
        let init = 0
        if (l % 2) { //奇数
          sz = Math.floor(l / 2) //商
          init = 0
        } else { //偶数
          sz = l / 2
          init = 1
        }
        let arr = []
        let span_html = '';
        for (let i = init; i <= sz; i++) {
          //奇数
          let zarr = []
          if (l % 2) {
            if (i == init) {
              span_html = `<span class="id${i}">${span_text[sz]}</span>`
              console.log("span_html", span_html)
              zarr.push(span_html)
              // zarr.push({
              //  htmlName:a[sz],
              //  id:`id${i}`
              // })
              // `id${i}`
            } else {
              span_html = `<span class="id${i}">${span_text[sz-i]}</span>`
              zarr.push(span_html)
              span_html = `<span class="id${i}">${span_text[sz+i]}</span>`
              zarr.push(span_html)
              // $(".htmlspan").html(span_html)
              // $(".htmlspan").html(span_html1)
              // zarr.push({
              //  htmlName:[sz-i],
              //  id:`id${i}`
              // })
              // zarr.push({
              //  htmlName:a[sz+i],
              //  id:`id${i}`
              // })
            }
          } else {
            if (i == init) {
              // zarr.push({
              //  htmlName:a[(sz-i)],
              //  id:`id${i-1}`
              // })
              // zarr.push({
              //  htmlName:a[(sz)],
              //  id:`id${i-1}`
              // })
              span_html = `<span class="id${i}">${span_text[sz-i]}</span>`
              zarr.push(span_html)
              span_html = `<span class="id${i}">${span_text[sz]}</span>`
              zarr.push(span_html)
            } else {
              // zarr.push({
              //  htmlName:a[(sz-i)],
              //  id:`id${i-1}`
              // })
              // zarr.push({
              //  htmlName:a[(sz+i-1)],
              //  id:`id${i-1}`
              // })
              span_html = `<span class="id${i}">${span_text[sz-i]}</span>`
              zarr.push(span_html)
              span_html = `<span class="id${i}">${span_text[sz+i-1]}</span>`
              zarr.push(span_html)
            }
          }
          arr.push(zarr)
          // arr.push(zarr)
        }
        console.log("arr", arr)
        var newArr = []
        for (let index = 0; index < arr.length; index++) {
          if (index == 0) {
            newArr.push(arr[index][0])
          } else {
            newArr.unshift(arr[index][0])
            newArr.push(arr[index][1])
          }
        }
        console.log("newArr", newArr)
        // for (let j = 0; j < newArr.length; j++) {
        //  span_html += newArr[j]
        //  console.log("span_html",span_html)
        // }
        span_html = newArr.join('')
        $(".htmlspan").html(span_html)
        setTimeout(() => {
          for (let i = 0; i <= sz; i++) {
            console.log("i", i)
            setTimeout(() => {
              let a = document.querySelectorAll(`.id${i}`)
              console.log(a)
              if (i == 0) {
                a[0].style.transform = "translateY(-150px)"
                a[0].style.transition = "all 1s"
              } else {
                a[0].style.transform = "translateY(-150px)"
                a[0].style.transition = "all 1s"
                a[1].style.transform = "translateY(-150px)"
                a[1].style.transition = "all 1s"
              }
            }, 50 * i)
          }
        }, 100)
      }
      $(".menu >li").hover(function() {
        var span_text = "abcdepoijhtydqq"
        let l = span_text.length
        let sz = 0
        let init = 0
        sz = Math.floor(l / 2) //商
        for (let i = 0; i <= sz; i++) {
          console.log("i", i)
          setTimeout(() => {
            let a = document.querySelectorAll(`.id${i}`)
            console.log(a)
            if (i == 0) {
              a[0].style.transform = "translateY(-300px)"
              a[0].style.transition = "all 1s"
            } else {
              a[0].style.transform = "translateY(-300px)"
              a[0].style.transition = "all 1s"
              a[1].style.transform = "translateY(-300px)"
              a[1].style.transition = "all 1s"
            }
          }, 50 * i)
        }
      }, function() {
        var span_text = "abcdepoijhtydqq"
        let l = span_text.length
        let sz = 0
        let init = 0
        sz = Math.floor(l / 2) //商
        for (let i = 0; i <= sz; i++) {
          console.log("i", i)
          setTimeout(() => {
            let a = document.querySelectorAll(`.id${i}`)
            console.log(a)
            if (i == 0) {
              a[0].style.transform = "translateY(-150px)"
              a[0].style.transition = "all 1s"
            } else {
              a[0].style.transform = "translateY(-150px)"
              a[0].style.transition = "all 1s"
              a[1].style.transform = "translateY(-150px)"
              a[1].style.transition = "all 1s"
            }
          }, 50 * i)
        }
      })
      // $(".menu >li").mouseleave(function(){
      //  var span_text = "abcdepoijhtydqq"
      //  let l = span_text.length
      //  let sz = 0
      //  let init = 0
      //  sz = Math.floor(l/2) //商
      //  for (let i = 0; i <= sz; i++) {
      //        console.log("i",i)
      //        setTimeout(()=>{
      //          let a = document.querySelectorAll(`.id${i}`)
      //          console.log(a)
      //          if(i == 0){
      //            a[0].style.transform = "translateY(-300px)"
      //            a[0].style.transition = "all 1s"
      //          }else{
      //            a[0].style.transform = "translateY(-300px)"
      //            a[0].style.transition = "all 1s"
      //            a[1].style.transform = "translateY(-300px)"
      //            a[1].style.transition = "all 1s"
      //          }
      //        },50*i)
      //      }
      // })
    </script>
  </body>
</html>
body,//myStyle 文件夹
div,
dl,
dt,
ul,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
legend,
input,
textarea,
button,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0;
}
* {
  margin: 0;
  padding: 0;
}
li {
  list-style-type: none;
}
a {
  text-decoration: none;
}
/*                            图片居中显示 */
img,
input,
button {
  border: none;
  vertical-align: middle;
}
/* 单行省略 */
.row {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* 2行省略 */
.row2 {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  white-space: normal !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
/* 3行省略 */
.row3 {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  white-space: normal !important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
/* 4行省略 */
.row4 {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  white-space: normal !important;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}
/* 3行省略 */
.row5 {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  white-space: normal !important;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}
/* 3行省略 */
.row6 {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  white-space: normal !important;
  -webkit-line-clamp: 6;
  -webkit-box-orient: vertical;
}
/* 7行省略 */
.row7 {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  white-space: normal !important;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
}
.font15 {
  font-size: 0.9375rem !important;
}
.font18 {
  font-size: 1.125rem !important;
}
.font20 {
  font-size: 1.25rem !important;
}
.font25 {
  font-size: 1.5625rem !important;
}
/* 转大写 */
.tupCass {
  text-transform: uppercase;
}
.min1200 {
  min-width: 1200px;
}
details {
  width: 25px !important;
  height: 20px !important;
  margin-right: 20px;
}
details summary {
  position: relative;
  cursor: pointer;
  list-style: none;
  width: 100%;
  height: 100%;
}
summary span {
  display: block;
  width: 100%;
  height: 5px;
  background-color: #FFFFFF;
  transition: 0.3s;
  position: absolute;
}
summary span:first-child {
  top: 0;
}
summary span:nth-child(2) {
  top: calc(50% - 2.5px);
}
summary span:last-child {
  bottom: 0;
}
details[open] span:nth-child(2) {
  display: none;
}
details[open] span:first-child {
  top: calc(50% - 2.5px);
  transform: rotate(-45deg);
  transform-origin: center;
}
details[open] span:last-child {
  bottom: calc(50% - 2.5px);
  transform: rotate(45deg);
  transform-origin: center;
}
header {
  position: relative;
}
datalist[open]+nav {
  overflow: auto;
}
body,html{
  width: 100vw;
  height: 100vh;
  background-color: #272822;
}
.sidbar{
  width: 100%;
  height: 100%;
  background: #ffc324;
  position: fixed;
  top: 0;
  display: flex;
  justify-content: center;
  padding-top: 100px;
  transition: all .5s;
  left: 100%;
  /* left: 0; */
}
.sidbar-avtive{
  left: 0;
}
.open{
  position: fixed;
  right: 15px;
  top: 15px;
}
.active{
  color: #007AFF;
}
.menu li{
  /* width: 500px; */
  height: 100px;
  overflow: hidden;
  border: 1px solid #000000;
  position: relative;
  color: #000000;
  display: flex;
  font-weight: bold;
  font-size: 7.25rem;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  /* margin-bottom: 8px; */
  transition: all .3s;
  line-height: 80px;
}
.menu li span{
  margin-top: 300px;
  /* transform: translateY(-150px); */
}
.curts{
  background-color: #FFFFFF;
  color: #000000;
  cursor: pointer;
}
/* .menu >.curts,
.menu >li:hover{
  color: #FFFFFF;
  font-size: 6.875rem;
  cursor: pointer;
} */

1.jpg

相关文章
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
806 143
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
741 3
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
417 1
|
编解码 前端开发 JavaScript
js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd
在React中结合Ant Design与媒体查询,通过less变量和响应式断点动态调整`@font-size-base`,实现多分辨率下字体自适应,提升跨设备体验。
714 2
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
1137 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
1060 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
409 34
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1447 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布