一个简单的动态页面(我的第一个博客)

2018-11-10

今天是我第一次写博客,因为没经验嘛,我就随便写写,我也希望自己以后能坚持写下去,不为别的,就为了自己能够更好地学习编程,能够追随行业大牛的脚步,从此赢取白富美,走上人生巅峰(额,理想远大呵!)

 

好吧,步入正题,因为目前在学java,加了一些培训机构的群,跟着做了一个小项目,就是做个页面,当鼠标悬浮于图片之上的时候,图片会实现一个放大旋转的效果,经简单的,具体演示看下图:

 

 

我觉得这个项目的难点有两点:

  1. 背景上叠加的六边形
  2. 鼠标放置图片上,图片显示旋转放大效果

一,首先讲一下如何做背景六边形

  这个六边形其实是在li标签中,放置两个div标签,并且都是用rgba设置成黑色半透明,在正常情况下我们都知道,一个li标签里放两个与li标签一样大的div标签,肯定会放不下,这样,有一个div会被挤出去,如图所示

为了把两个div都放入li中,就需要让另一个div飘起来,覆盖在上面,这里就需要介绍一下绝对位置 ,

 

 

position:absolute;
left: 0;
top: 0;

然后在div的父标签li中调用相对位置,将飘在外边的的div拉回去,

position:relative;

这样,我们就可以使用css3的transform属性来旋转两个div,这样就可以得到一个六边形

 

二,鼠标放置图片上,图片显示旋转放大效果

要实现这个功能,要用到css中的hover选择器,用法如下

选择鼠标指针浮动在其上的元素,并设置其样式:

image:hover
{ 
transform:scale(1.4) rotate(360deg);
}

当然了,如果仅仅这样就结束了,你是看不出效果的,因为画面切换太快了,所以再此要用到css3 过渡属性transition,让css效果转换,持续1秒

transition-duration:1s

就这些吧,再附个源码(有些改动)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>多边形旋转放大</title>
</head>
<body>
    <div class="box">
        <ul>
            <li><img src="images/1.png"></li>
            <li><img src="images/2.png"></li>
            <li><img src="images/3.png"></li>
            <li><img src="images/4.png"></li>
            <li><img src="images/5.png"></li>
            <li class="cols2"><img src="images/6.png"></li>
            <li><img src="images/7.png"></li>
            <li><img src="images/8.png"></li>
            <li><img src="images/9.png"></li>
            <li><img src="images/10.png"></li>
            <li><img src="images/11.png"></li>
            <li><img src="images/12.png"></li>
            <li><img src="images/13.png"></li>
            <li><img src="images/14.png"></li>
        </ul>
    </div>
</body>
<style type="text/css">
    body{
        margin: 0;
        background-image: url("images/bodyBg.jpg");
    }
    .box{
        background-color: #d09324;
        width:1000px;
        height: 550px;
        margin:100px auto;
        background-image: url("images/bodyBg.jpg");
    }
    ul{
        margin:0;
        padding:18px;
        list-style: none;
    }
    li{
        position:relative;
        background-color:rgba(0,0,0,0.5);
        height: 105px;
        width: 180px;
        float: left;
        margin:30px 5px;
    }
    li:before, li:after{
        content: "";
        background-color:rgba(0,0,0,0.5);
        height: 100px;
        width: 180px;
        position:absolute;
        left: 0;
        top: 0;    
    }
    li:before{
        transform:rotate(60deg);
    }
    li:after{
        
        transform:rotate(-60deg);
    }
    .cols2{
        margin-left:100px;
    }
    img{
        position:absolute;
        top:0;
        left:0;
        right:0;
        bottom:0;
        margin:auto;
        z-index: 9;
        transition-duration:1s;
    }
    .box img:hover {
    transform:scale(1.4) rotate(360deg);
    
}
</style>
</html>

 

 

 
 

 

 

转载于:https://www.cnblogs.com/Ryan777/p/9940652.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装 Vue CLI。你可以在终端中使用以下命令进行安装: ``` npm install -g @vue/cli ``` 接下来,你可以使用 Vue CLI 创建一个新的项目。使用以下命令创建一个新的项目: ``` vue create my-blog ``` 这将创建一个名为 "my-blog" 的新项目。安装完成后,进入项目目录并启动开发服务器: ``` cd my-blog npm run serve ``` 现在你可以开始编写你的博客了。首先,你需要创建一个页面来展示你的博客文章。在 "src/views" 目录下创建一个新的文件 "Blog.vue"。在这个文件中,你可以使用 Vue 的模板语法来定义你的页面布局和内容。例如: ``` <template> <div> <h1>My Blog</h1> <ul> <li v-for="post in posts" :key="post.id"> <router-link :to="'/blog/' + post.id">{{ post.title }}</router-link> </li> </ul> </div> </template> <script> export default { data() { return { posts: [ { id: 1, title: "My first blog post", content: "Lorem ipsum dolor sit amet..." }, { id: 2, title: "My second blog post", content: "Lorem ipsum dolor sit amet..." }, { id: 3, title: "My third blog post", content: "Lorem ipsum dolor sit amet..." } ] } } } </script> ``` 在这个例子中,我们创建了一个简单博客页面,显示了一个包含所有博客文章标题的列表。当用户点击某个标题时,页面将自动导航到该文章的详细页面。 接下来,你需要创建一个单独的页面来显示每篇博客文章的详细内容。在 "src/views" 目录下创建一个新的文件 "BlogPost.vue"。在这个文件中,你可以使用模板语法来定义文章的布局和内容。例如: ``` <template> <div> <h1>{{ post.title }}</h1> <p>{{ post.content }}</p> </div> </template> <script> export default { data() { return { post: {} } }, mounted() { const postId = this.$route.params.id this.post = this.$store.getters.getPostById(postId) } } </script> ``` 在这个例子中,我们创建了一个名为 "BlogPost" 的组件,用于显示单篇博客文章的详细内容。我们使用了 Vue 的生命周期钩子 "mounted" 来获取文章的数据,并将其显示在页面上。 最后,你需要创建一个路由器来管理你的博客页面。在 "src/router" 目录下创建一个新的文件 "index.js"。在这个文件中,你可以定义所有的路由规则。例如: ``` import Vue from 'vue' import Router from 'vue-router' import Blog from '@/views/Blog.vue' import BlogPost from '@/views/BlogPost.vue' Vue.use(Router) export default new Router({ mode: 'history', routes: [ { path: '/', name: 'Blog', component: Blog }, { path: '/blog/:id', name: 'BlogPost', component: BlogPost } ] }) ``` 在这个例子中,我们定义了两个路由规则。第一个规则用于显示博客页面,第二个规则用于显示单篇博客文章的详细内容。我们使用了动态路由参数 ":id" 来指定文章的ID号。 现在你已经完成了一个简单的个人博客的创建。你可以在终端中启动服务器: ``` npm run serve ``` 然后在浏览器中访问 "http://localhost:8080" 来查看你的博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值