1.0.2 • Published 5 years ago
screen-size-vue v1.0.2
screen-size-vue
This is A Vue Package helps you write conditional code based on screen size, or get the screen size value
Install
Install the npm package:
npm install --save screen-size-vue
#OR
yarn add screen-size-vueAdd the Vue plugin in your main.js:
import Vue from 'vue'
import ScreenSize from 'screen-size-vue'
Vue.use(ScreenSize)Example
This shows a quick example of displaying your screen width, screen height and current breakpoint
<template>
<div id="app">
<h1>{{ $data.$screenSize.width }}px / {{ $data.$screenSize.height }}px</h1>
<h1>{{ $data.$screenSize.breakPoint }}</h1>
</div>
</template>Getters
$data.$screenSize.breakPointis used to get the quick current breakpoint of the screen
| Name | Size | property |
|---|---|---|
| Extra small | <576px | xs |
| Small | ≥576px | s |
| Medium | ≥768px | m |
| Large | ≥992px | l |
| Large | ≥1200px | xl |
$data.$screenSize.widthits is used to get the width of the screen in pixels$data.$screenSize.heightits is used to get the height of the screen in pixels
Methods
$VHToPX()- This is helpful for iOS devices, that overlaps when using VH, this can be replaced with this
eg
<template>
<div :style="`height: ${$VHToPX(100)}`">
<h1>{{ $data.$screenSize.width }}px / {{ $data.$screenSize.height }}px</h1>
<h1>{{ $data.$screenSize.breakPoint }}</h1>
</div>
</template>This shows an advanced example of running conditional actions based on the screen size
<template>
<div id="app">
<h1>{{ $data.$screenSize.width }}px / {{ $data.$screenSize.height }}px</h1>
<h1 :style="{color}">{{ $data.$screenSize.breakPoint.toUpperCase() }} - {{ text }}</h1>
</div>
</template>
<script>
export default {
name: 'App',
computed: {
color () {
if (this.$data.$screenSize.breakPoint == this.$data.$breakPoint.xs) {
return 'red'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.s) {
return 'blue'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.m) {
return 'orange'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.l) {
return 'yellowgreen'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.xl) {
return 'darkmagenta'
}
return 'darkmagenta'
},
text () {
if (this.$data.$screenSize.breakPoint == this.$data.$breakPoint.xs) {
return 'Extra Small Screen eg Mobile Phones(Portrait Mode)'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.s) {
return 'Small Screen eg Mobile Phones(Landscape Mode)'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.m) {
return 'Medium Screen eg Tablet'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.l) {
return 'Large Screen eg Laptop, PC'
} else if (this.$data.$screenSize.breakPoint === this.$data.$breakPoint.xl) {
return 'Extra Large Screen eg Laptop, PC'
}
return 'Extra Large Screen eg Laptop, PC'
}
}
}
</script>Follow on Twitter @mrflamez_
License
MIT © kingflamez