Laravel项目全站接入pjax
pjax:
在不刷新页面的状态下改变url地址
引入js
<script src="https://cdn.bootcss.com/jquery.pjax/2.0.1/jquery.pjax.min.js"></script>
//定义加载区域
$(document).pjax('a', 'body');
//定义pjax有效时间,超过这个时间会整页刷新
$.pjax.defaults.timeout = 12000;
//显示加载动画
$(document).on('pjax:click', function () {
$("#loading").show();
});
//隐藏加载动画
$(document).on('pjax:end', function () {
$("#loading").hide();
});
#loading {
background-color: rgba(238, 238, 238, 0.6);
display: none;
position: absolute;
left: 0;
top: 0;
right: 0;
z-index: 2000;
bottom: 0;
padding-top: 10%;
}
#loading .spinner {
margin: 100px auto;
width: 50px;
height: 60px;
text-align: center;
font-size: 10px;
}
#loading .spinner > div {
background-color: rgba(0, 0, 0, 0.2);
height: 100%;
width: 6px;
display: inline-block;
-webkit-animation: stretchdelay 1.2s infinite ease-in-out;
animation: stretchdelay 1.2s infinite ease-in-out;
}
#loading .spinner .rect2 {
-webkit-animation-delay: -1.1s;
animation-delay: -1.1s;
}
#loading .spinner .rect3 {
-webkit-animation-delay: -1s;
animation-delay: -1s;
}
#loading .spinner .rect4 {
-webkit-animation-delay: -0.9s;
animation-delay: -0.9s;
}
#loading .spinner .rect5 {
-webkit-animation-delay: -0.8s;
animation-delay: -0.8s;
}
@-webkit-keyframes stretchdelay {
0%,
40%,
100% {
-webkit-transform: scaleY(0.4);
}
20% {
-webkit-transform: scaleY(1);
}
}
@keyframes stretchdelay {
0%,
40%,
100% {
transform: scaleY(0.4);
-webkit-transform: scaleY(0.4);
}
20% {
transform: scaleY(1);
-webkit-transform: scaleY(1);
}
}
文件目录
composer require spatie/laravel-pjax
composer引入laravel-pjax
在 app/Http/Kernel.php 文件添加
protected $middleware = [
...
\Spatie\Pjax\Middleware\FilterIfPjax::class,
];
<div id="loading">
<div class="spinner">
<div class="rect1"></div>
<div class="rect2"></div>
<div class="rect3"></div>
<div class="rect4"></div>
<div class="rect5"></div>
</div>
</div>
本作品采用《CC 协议》,转载必须注明作者和本文链接
pjax
@诺大的院子 傻傻的老打错
livewire 它不香吗 :eyes:
@落叶满长安 没聊结果哈哈
可以提供下具体信息
@Nines laravel-livewire.com/
@落叶满长安 能搞pjax那种特效吗 :cow:
@Nines 能, livewire + turbolinks 可以搞 spa,但是由于要搭配 turbolinks ,学习成本有点高。 github.com/livewire/turbolinks
@Nines 但是我还是不太推荐搞,如果有精力,不如优先搞一下前端框架,例如 vue,毕竟前端框架提供的是一整套完整的解决方案。
@落叶满长安 好的
主要解决什么问题呢?pjax
在不刷新整个页面的情况下切换页面本社区也用到pjax了,比如你点导航栏的切换
@Nines 跟vue单页有什么不同呢?
@babyObama 没有区别传统开发方式的解决方案