网站首页banner的高度计算


很快一周又过去了
这周收获到的,工作中的知识点总结


一, 网站首页banner的高度计算
网站首页在设计banner的高度的时候,需要保证一进入页面的时候,屏幕至少能显示一半出来,也就是说banner完全显示出来,下方的楼层也要显示一部分出来


  解决方法:
屏幕比例 16:9或者4:3,
求高度的时候 比例 9/16=0.5625
(如果是求宽度 比例是16/9)
网站的最小宽度是1200px,
所以 banner的高度是1200*0.5625=675
另外还有上方的header,header高是60
所以675+60=735
也就是banner的高度是735的时候做一些样式处理
然后配合媒体查询
屏幕的max-height : 850px的时候, banner的高度  565
屏幕的max-height : 750px的时候, banner的高度  495


二,页面的渲染
项目基于fis3+laravel,
用的是php的laravel框架和blade模板,
要完成一个页面,
实现方式一:
前端直接在blade模板当中写页面
比如一个导航  与后台协商好接口数据之后
模板当中这样写
//判断是否定义了变量  并且 变量里面有数据
@if (isset($navList) && count($navList))  
     <div class="items-wrapper col-l">
     @foreach ($navList as $item)        //循环这个变量  
       <a href="{{ $navList['href']) }}">{{$navList['label'] }}</a>  //输出变量中的href label
     @endforeach
     </div>
@endif

这样可以可以生成一个列表,
然后再在样式文件中定义样式,
如果有交互的效果,就在JS里编写
这种处理方式是数据在服务器处理,然后返回给前端一个页面.从而显示出来

实现方式二:
前端先获取后台返回的json数据,然后拼成html结构,显示在页面上,
这里涉及到一种类似bigrender的实现,(淘宝页面查看源代码的话 就能找到这些<textarea>)

比如 模板中写法如下


  <div class="course-wrapper">
//用一个textarea包着  
        <textarea style="display:none" autocomplete="off" data-id="course-data">
            {!! json_encode([
//后端的数据
                "floorItemList" => $recommendList,
                "extraDataList" => $extraDataList
//json编码  后端统一  不要中文字符编码
            ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) !!}
        </textarea>
//获取到数据前给一个loading提示
        <div class="loading">
            <i class="iconfont icon-cat icon"></i>
            <span class="text">数据加载中...</span>
        </div>
    </div>  


样式还是在css文件中定义

脚本当中
就要先发送一个ajax请求,获取后端的数据,把数据处理完成之后,再通过拼接字符串,生成html结构
这种处理方式,相当于客户端处理数据,

服务器端与客户端处理数据的最主要的不同是
服务器端处理数据的时候,如果页面的数据比较多,会造成加载缓慢,耗性能,
客户端处理的话,最大的缺点的是不利于SEO,因为内容都被<textarea>包起来,隐藏了,

所以采用的话还是得看业务需求.


现在面临的问题
写页面一般都没问题,不管是PC或者移动端的app,但是在涉及到交互方面
比如之前我遇到的问题是,面对一个交互需求,我不知道如何着手,完全没有思路,没有逻辑,
只能看别人写的或者搜索网上的例子,
现在遇到的问题是:面对一个交互需求,我明白它的实现原理,但是写的时候却卡壳了,写不出来
或者写了许多垃圾代码之后,调试了许久之后,才写出来
举个例子
比如类似一个select单选框,不用<select>标签,因为它自带的样式不好看,
所以采用<div>模拟一个出来,样式,结构很好写
比如一个ul 里面3个li
第一个li显示,第二,三个li隐藏,
然后鼠标移上去,第二,三个显示出来,供用户选择,
在用脚本实现点击选择的时候,
我知道它的原理是
比如点第二个li,就把第二个li放在第一位显示出来,原来的第一个放到第二个li的位置,
就是类似于两两交换位置,
同时需要点击的事件外面定义一个变量,用来保存当前的显示的那个li,
在点击事件里,两两换完位置之后,再更新一下那个保存li的变量,
我知道这个原理,但是我最开始写的时候.却无法下手,
等通过各种写,各种混乱的代码之后,才实现这个需求.


正常情况下,知道了需求,明白了原理,就是开始做,刷刷刷写完,搞定,
但是我却在明白了原理,到开始做的这一过程中,写不顺溜,






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值