Javascript 事件更改样式 sass mixin
Javascript event change style with sass mixin
我正在开发一个带有侧边栏的网站。当您按下按钮时,侧边栏会从左侧进入并将主体推开。
边栏的宽度为 280 像素,最大宽度为 80%(适用于移动设备)。目前我的 javascript 看起来像这样:
// Left menu moves in the view
$('.left-menu').toggleClass('in-view');
// Moves the body to the right 280px
$('.content-wrapper').toggleClass('to-right');
// to-right in css
.to-right {
@include translate(280px, 0);
}
// Mixin
@mixin transform($transforms) {
-moz-transform: $transforms;
-o-transform: $transforms;
-ms-transform: $transforms;
-webkit-transform: $transforms;
transform: $transforms;
}
@mixin translate($x,
$y) {
@include transform(translate($x, $y));
}
这在台式机和平板电脑上运行良好,但在移动设备上会出现问题。向右移动 body 280px,但如果 80% 低于 280px,则会向左 space..
我怎样才能让它在你打开侧边栏时将正文恰好移动到侧边栏的宽度?当然你可以这样做:
.css('-moz-transform', 'sidebar_width')
.css('-o-transform', 'sidebar_width')
.css('-ms-transform', 'sidebar_width')
.css('-webkit-transform', 'sidebar_width')
.css('transform', 'sidebar_width')
但我真的不认为这是正确的做法..
有没有更好的方法来解决这个问题?某种 Javascript 自定义混合事件?
感谢阅读!
是的,通常最好将 css 和 javascript 分开。媒体查询是根据设备属性(如屏幕尺寸)提供不同样式的有用方法。
.in-view {
width: 280px;
max-width: 80%;
@media only screen and (max-device-width: 350px) {
max-width: 100%;
}
}
350px 是 80% = 280px 时的屏幕宽度。
我正在开发一个带有侧边栏的网站。当您按下按钮时,侧边栏会从左侧进入并将主体推开。
边栏的宽度为 280 像素,最大宽度为 80%(适用于移动设备)。目前我的 javascript 看起来像这样:
// Left menu moves in the view
$('.left-menu').toggleClass('in-view');
// Moves the body to the right 280px
$('.content-wrapper').toggleClass('to-right');
// to-right in css
.to-right {
@include translate(280px, 0);
}
// Mixin
@mixin transform($transforms) {
-moz-transform: $transforms;
-o-transform: $transforms;
-ms-transform: $transforms;
-webkit-transform: $transforms;
transform: $transforms;
}
@mixin translate($x,
$y) {
@include transform(translate($x, $y));
}
这在台式机和平板电脑上运行良好,但在移动设备上会出现问题。向右移动 body 280px,但如果 80% 低于 280px,则会向左 space..
我怎样才能让它在你打开侧边栏时将正文恰好移动到侧边栏的宽度?当然你可以这样做:
.css('-moz-transform', 'sidebar_width')
.css('-o-transform', 'sidebar_width')
.css('-ms-transform', 'sidebar_width')
.css('-webkit-transform', 'sidebar_width')
.css('transform', 'sidebar_width')
但我真的不认为这是正确的做法..
有没有更好的方法来解决这个问题?某种 Javascript 自定义混合事件?
感谢阅读!
是的,通常最好将 css 和 javascript 分开。媒体查询是根据设备属性(如屏幕尺寸)提供不同样式的有用方法。
.in-view {
width: 280px;
max-width: 80%;
@media only screen and (max-device-width: 350px) {
max-width: 100%;
}
}
350px 是 80% = 280px 时的屏幕宽度。